.landing-panel .landing-field .landing-link.landing-link-faq {
    background: #AFBCCB;
}

.landing-panel .landing-field .landing-link.landing-link-faq:focus,
.landing-panel .landing-field .landing-link.landing-link-faq:active {
    background: #AFBCCB;
}
/* Footer bottom spacing */
.footer-bottom-space {
    margin-bottom: 60px;
}

/* Index intro links styling */
.index-intro-content a {
    color: #000;
    text-decoration: none;
}
.index-intro-content a:hover {
    text-decoration: underline;
}

/* --- Inline styles moved from footer.html --- */
html.page-footer, body.page-footer { 
    margin: 0; 
    padding: 0; 
    background: #0e0e0e;
    color: #ffffff;
    min-height: 100%;
    height: 100%;
}

/* --- Inline styles moved from float.html --- */
html.page-float, body.page-float {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    background: transparent;
    overflow: hidden;
}
.page-float .float-stage {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: transparent; /* let parent show through */
}
.page-float #sq {
    position: absolute;
    width: 80px;
    height: 80px;
    background: #708AA7; /* brand primary */
    border-radius: 0;
    will-change: transform, left, top;
    transform: rotate(0rad);
}
@media (prefers-reduced-motion: reduce) {
    .page-float #sq { transition: none !important; animation: none !important; }
}
/* --- Inline styles moved from kalkulator3.html --- */
/* Hide datalist option ticks for sliders */
.hidden { display: none !important; }
.mobile-anchor-offset { display: none; }
@media (max-width: 900px) { .page-scroll #section-standardy, .page-scroll #section-kalkulator { margin-top: -54px !important; padding-top: 54px !important; padding-bottom: 2rem !important; background-clip: content-box !important; } .logo-header { min-height: 54px; height: 54px; padding: 0 0 2px 0; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,0.04); display: flex; align-items: flex-start; position: sticky; top: 0; z-index: 1000; } .logo-header .logo-link { margin-top: 18px; margin-left: 18px; padding-top: 2px; padding-left: 6px; } .logo-header .logo-img { max-height: 28px; height: 28px; width: auto; display: block; } .hamburger-btn { right: 8px; width: 32px; height: 32px; padding: 4px 6px; top: 12px; } .login-btn-standalone { min-height: 54px; max-height: 54px; font-size: 1em; padding: 0 10px; right: 0; top: 0; } }
body.page-index-minimal.page-scroll { scroll-behavior: auto !important; }
.vertical-menu .menu-spacer { height: 2em; pointer-events: none; background: none; border: none; }
.vertical-menu .close-menu-link { color: #fff; font-weight: 600; cursor: pointer; }
@media (max-width: 900px) { .header-actions { display: flex !important; flex-direction: row; justify-content: flex-end; align-items: center; gap: 12px; position: static !important; right: 0 !important; top: 0 !important; height: auto !important; z-index: 2000; } .header-actions .login-btn-standalone, .header-actions .hamburger-btn { position: static !important; right: auto !important; top: auto !important; margin: 0 !important; z-index: auto !important; } }
.landing-panel { display: flex; flex-wrap: wrap; flex-direction: row; justify-content: center; align-items: flex-start; gap: 12px; padding: 0 !important; max-width: calc(3 * 275px + 24px) !important; margin-left: auto; margin-right: auto; margin-bottom: 2rem; background: none; box-shadow: none; }
.landing-field { flex: 0 0 275px; width: 275px; min-width: 275px; max-width: 275px; background: #fff; border-radius: 18px; display: flex; align-items: center; justify-content: center; min-height: 180px; box-shadow: none; transition: box-shadow 0.2s; }
.landing-link { color: #fff; font-size: 1.18rem; font-weight: 600; text-align: left; text-decoration: none; width: 100%; height: 100%; padding: 2.2rem 1.2rem; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; border-radius: 18px; transition: background 0.18s; gap: 1.1rem; box-sizing: border-box; box-shadow: none; border: none; }
.landing-link .landing-desc::after {
    content: " \2192";
    font-weight: 700;
}
@media (max-width: 900px) { 
    .landing-panel { 
        max-width: var(--tiles-w1-mobile-inner) !important; 
        width: var(--tiles-w1-mobile-inner) !important; 
        flex-direction: column; 
        gap: 10px; 
        margin-bottom: 0 !important; 
        padding: 0 !important; 
        box-sizing: border-box; 
    } 
    .landing-field { 
        flex: 1 1 auto !important; 
        width: 100% !important; 
        min-width: 100% !important; 
        max-width: 100% !important; 
        height: 138px !important; 
        min-height: 138px !important; 
        max-height: 138px !important; 
        overflow: hidden; 
        border-radius: 0 !important; 
        margin-bottom: 0 !important; 
        box-sizing: border-box; 
    } 
    .landing-link { 
        padding: 1rem 1.2rem !important; 
        gap: 0.5rem !important; 
        font-size: 1.1rem !important; 
        line-height: 1.35 !important; 
        justify-content: flex-start !important; 
        align-items: flex-start !important; 
        height: 100% !important; 
        width: 100% !important; 
        overflow: hidden; 
        box-sizing: border-box !important; 
        border-radius: 0 !important; 
    } 
}
.hamburger-btn { position: absolute; top: 50%; right: 140px; transform: translateY(-50%); width: 76px; height: 64px; background: transparent; border: 0; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 12px 16px; box-sizing: border-box; z-index: 1010; touch-action: manipulation; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; transition: transform 0.25s ease; transform-origin: center; }
.hamburger-btn span { position: absolute; width: 48px; height: 2px; background: #0e0e0e; border-radius: 2px; transition: transform 0.25s ease, opacity 0.2s ease; }
.hamburger-btn span:nth-child(2) { transform: rotate(90deg); }
.hamburger-btn span:nth-child(3) { opacity: 0; width: 0; height: 0; }
.hamburger-btn.is-open { transform: translateY(-50%) rotate(45deg); }
.hamburger-btn:focus { outline: none; }
.hamburger-btn:focus-visible { outline: none; }
.vertical-menu { position: fixed; top: 108px; right: 0; width: 220px; height: calc(100vh - 108px); background: #0e0e0e; color: #fff; transform: translateY(-20px) scaleY(0); transform-origin: top right; transition: transform .28s cubic-bezier(.4,1.4,.6,1); z-index: 1400; padding: 0 0 24px 0; box-sizing: border-box; border-radius: 0 0 0 8px; box-shadow: 0 8px 32px rgba(0,0,0,0.18); overflow-y: auto; }
.vertical-menu.open { transform: translateY(0) scaleY(1); }
.vertical-menu ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px; }
.vertical-menu a { display:block; padding:14px 24px; color:#fff; text-decoration:none; font-weight:600; }
.vertical-menu a:hover, .vertical-menu a:focus { background:#1c1c1c; text-decoration:none; }
body.menu-open { overflow:hidden; }
@media (max-width:900px){ .hamburger-btn { display: flex !important; right: 70px; width: 44px; height: 44px; padding: 6px 8px; touch-action: manipulation; -webkit-user-select: none; user-select: none; } .hamburger-btn span { width: 30px; height: 2px; } .vertical-menu { width: 180px; top: 64px; height: calc(100vh - 64px); border-radius: 0 0 0 8px; } }
.login-btn-standalone { background: #0e0e0e; color: #fff; display: flex; align-items: center; justify-content: center; height: 100%; min-height: 108px; max-height: 108px; width: 108px; min-width: 108px; max-width: 108px; padding: 0; border-radius: 0; font-weight: 600; line-height: 1; position: absolute; top: 0; right: 0; z-index: 10; margin: 0; text-decoration: none; box-sizing: border-box; font-size: 1.08em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; transition: filter 0.2s, background 0.2s; }
.login-btn-standalone:hover { filter: brightness(0.95); text-decoration: none; }
@media (max-width: 900px) { .login-btn-standalone { height: 54px !important; width: 54px !important; min-width: 54px !important; max-width: 54px !important; min-height: 54px !important; max-height: 54px !important; padding: 0 !important; font-size: 0.85em; right: 0; top: 0; border-radius: 0 !important; display: flex; align-items: center; justify-content: center; background: #0e0e0e !important; color: #fff !important; box-shadow: none !important; z-index: 1001; overflow: hidden; text-overflow: ellipsis; } }
.section-title-spacer-4x { display: block; width: 100%; height: calc(2.5 * 2.1rem); pointer-events: none; background: none; }
* { margin: 0; padding: 0; box-sizing: border-box; }
:root { --tile-size: 275px; --tile-gap: 12px; --tiles-w3: calc(3 * var(--tile-size) + 2 * var(--tile-gap)); --tiles-w2: calc(2 * var(--tile-size) + var(--tile-gap)); --tiles-w1: var(--tile-size); }
body { font-family: Arial, sans-serif; background: #ffffff; min-height: 100vh; line-height: 1.6; }

/* Tooltip styles for calculators */
.label-with-tooltip {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    position: relative;
}

.info-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: #AFBCCB;
    color: #ffffff;
    border: none;
    font-size: 15px;
    font-weight: 900;
    font-family: Arial, Helvetica, Verdana, sans-serif;
    cursor: pointer;
    -webkit-user-select: none;
    user-select: none;
    flex-shrink: 0;
    position: relative;
    z-index: 10;
    pointer-events: auto;
}

.info-icon:hover {
    background-color: #9BAAB9;
}

@media (max-width: 768px) {
    .info-icon {
        width: 17px;
        height: 17px;
        font-size: 12.75px;
    }
}

.info-icon-in-link {
    margin-left: 8px;
}

.tooltip-content {
    display: none;
    position: absolute;
    background-color: #333;
    color: white;
    padding: 12px;
    border-radius: 0;
    font-size: 14px;
    line-height: 1.4;
    max-width: 320px;
    z-index: 10000;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}

.tooltip-content.show {
    display: block;
}

.tooltip-content::before {
    content: '';
    position: absolute;
    top: -6px;
    left: 20px;
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid #333;
}

/* For slider labels, keep original layout */
.slider-label.label-with-tooltip {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.slider-label .label-text {
    flex: 1;
}

.slider-label .value-display {
    margin-left: auto;
}

/* Keep subtitle with link inline */
.subtitle.label-with-tooltip {
    display: inline-flex;
}

/* Checkbox labels with tooltips: increased vertical spacing for tooltip accommodation */
.checkbox-label-with-tooltip {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    flex-wrap: wrap;
    position: relative;
    line-height: 1.6;
    padding: 12px 0;
}

.checkbox-label-with-tooltip .custom-checkbox {
    flex-shrink: 0;
    margin-top: 3px;
}

.checkbox-label-with-tooltip span:not(.custom-checkbox):not(.info-icon) {
    flex: 1;
    word-break: break-word;
}

.info-icon-in-checkbox {
    flex-shrink: 0;
    margin-left: 4px;
    margin-top: 2px;
    position: relative;
    z-index: 10;
}

.checkbox-label-with-tooltip .tooltip-content {
    top: 100%;
    left: 0;
    margin-top: 8px;
    max-width: 400px;
}

/* Glossary layout */
.glossary-container { max-width: 1100px; margin: 0 auto; padding: 2rem 1.25rem 3rem; }
.page-slovnik-pojmov .main-title-box { margin: 0 0 0.75rem; padding: 0; }
.glossary-lead { margin: 0.75rem 0 1.5rem; color: #333; }
.glossary-grid { display: flex; flex-direction: column; gap: 20px; align-items: stretch; }
.glossary-head { border: 1px solid #e5e5e5; background: #fff; padding: 1rem 1.25rem; border-radius: 0; display: flex; flex-direction: column; gap: 12px; }
.glossary-head .glossary-nav { border: 0; background: transparent; padding: 0; position: static; }
.glossary-head .glossary-search { border: 0; background: transparent; padding: 0; width: 100%; }
.glossary-head .glossary-search-status { padding: 0; margin: 0; }
.glossary-nav { display: flex; flex-direction: column; background: #f7f7f7; border: 1px solid #e5e5e5; border-radius: 0; padding: 1rem 1.25rem; position: relative; top: auto; }
.glossary-nav h2 { margin: 0 0 0.75rem; font-size: 1.15rem; font-weight: 400; }
.glossary-letters { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: nowrap; gap: 6px; align-items: center; width: 100%; }
.glossary-letters a { display: flex; flex: 1 1 0; padding: 6px 8px; border: 1px solid #ddd; border-radius: 0; align-items: center; justify-content: center; text-align: center; text-decoration: none; color: #0e0e0e; font-weight: 600; background: #fff; white-space: nowrap; transition: background 0.2s, color 0.2s, border-color 0.2s; }
.glossary-letters a:hover, .glossary-letters a:focus { background: #0e0e0e; color: #fff; border-color: #0e0e0e; text-decoration: none; }
.glossary-search { display: flex; gap: 10px; padding: 1rem 1.25rem; border: 1px solid #e5e5e5; background: #f7f7f7; border-radius: 0; }
.glossary-search input { width: 100%; flex: 1; padding: 10px 12px; border: 1px solid #ccc; border-radius: 0; font-size: 1rem; box-sizing: border-box; -webkit-appearance: none; -moz-appearance: none; appearance: none; }
.glossary-search input:focus { outline: 2px solid #708AA7; outline-offset: 0; border-radius: 0; }
.glossary-search button { padding: 10px 14px; border: 1px solid #708AA7; background: #708AA7; color: #fff; font-weight: 600; border-radius: 0; cursor: pointer; transition: background 0.2s, border-color 0.2s; }
.glossary-search button.secondary { background: #fff; color: #0e0e0e; border: 1px solid #708AA7; }
.glossary-search button.secondary:hover, .glossary-search button.secondary:focus { background: #708AA7; color: #fff; border-color: #708AA7; }
.glossary-search button:hover, .glossary-search button:focus { background: #0e0e0e; border-color: #0e0e0e; }
.glossary-search-status { padding: 0.65rem 1.25rem 0; font-size: 0.95rem; color: #444; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
.glossary-list { display: flex; flex-direction: column; gap: 18px; width: 100%; }
.glossary-group { border: 1px solid #e6e6e6; border-radius: 0; padding: 1rem 1.25rem 1.5rem; background: #fff; box-shadow: 0 6px 22px rgba(0,0,0,0.05); scroll-margin-top: 125px; }
.glossary-group h2 { margin: 0 0 0.35rem; font-size: 0.95rem; letter-spacing: 0.08em; text-transform: uppercase; color: #555; }
.glossary-card { padding: 0.75rem 0 0.35rem; border-top: 1px solid #eee; }
.glossary-card:first-of-type { border-top: none; padding-top: 0.25rem; }
.glossary-card h3 { margin: 0 0 0.35rem; font-size: 1.2rem; font-weight: 400; }
.glossary-card p { margin: 0 0 0.35rem; color: #333; }
.glossary-note { margin: 0; font-size: 0.92rem; color: #666; }
.glossary-back { margin-top: 2rem; text-align: right; }
.glossary-back a { color: #0e0e0e; text-decoration: none; }
.glossary-back a:hover { text-decoration: underline; }
@media (max-width: 900px) {
    .glossary-grid { gap: 16px; }
    .glossary-nav { position: static; top: auto; }
    .glossary-letters { display: grid; grid-template-columns: repeat(13, 1fr); gap: 6px; padding-bottom: 6px; width: 100%; }
    .glossary-search { grid-template-columns: 1fr !important; }
    .glossary-search button { width: 100%; }
    .glossary-search-status { padding-left: 0; padding-right: 0; }
    .glossary-search input { width: 100%; box-sizing: border-box; }
    .glossary-group { scroll-margin-top: 70px; }
    /* Scoped wrap only for glossary page */
    .page-slovnik-pojmov { padding: 0; overflow-x: hidden; }
    .page-slovnik-pojmov .glossary-container { padding-left: 12px; padding-right: 12px; padding-top: 1rem; padding-bottom: 3rem; max-width: 100%; overflow-x: hidden; box-sizing: border-box; }
    .page-slovnik-pojmov .glossary-head { margin-left: -12px; margin-right: -12px; width: calc(100% + 24px); padding: 1rem 12px; box-sizing: border-box; }
    .page-slovnik-pojmov .glossary-group { margin-left: -12px; margin-right: -12px; width: calc(100% + 24px); padding-left: 12px; padding-right: 12px; box-sizing: border-box; }
    .page-slovnik-pojmov .glossary-card h3,
    .page-slovnik-pojmov .glossary-card p { word-break: break-word; overflow-wrap: break-word; -webkit-hyphens: auto; hyphens: auto; }
}

.hourly-rates-separate > h2.main-title {
    margin-top: 0 !important;
    padding-top: 0 !important;
    border-top: none !important;
}
/* Nuclear: Remove all possible space above the hourly rates section title and its parent containers */
/* Remove all possible space above the hourly rates section title and its parent containers, but keep white background for panels */
.container,
.hourly-rates-separate,
.hourly-rates-separate.left-align-field {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    border-top: none !important;
    border-bottom: none !important;
    outline: none !important;
    box-shadow: none !important;
}
.hourly-rates-separate > h2,
.hourly-rates-separate > .main-title {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    border-top: none !important;
    border-bottom: none !important;
    outline: none !important;
    box-shadow: none !important;
    background: none !important;
}
/* Consistent extra-large gap above section titles */
.main-title,
.section-title,
.reusable-panel h2,
.slider-panel header h1 {
    margin-top: 0 !important;
    background: none;
}
/* Remove gap above section title inside hourly-rates-separate */
.hourly-rates-separate > h2,
.hourly-rates-separate > .main-title {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Dedicated vertical spacer for above section titles */
.section-title-spacer {
    display: block;
    width: 100%;
    height: 2.1rem;
    pointer-events: none;
    background: none;
}
/* Instruction label for consistency with 'Veľkosť firmy architekta:' */
.instruction-label-unified {
    font-size: 1.0rem !important;
    font-weight: 400 !important;
    color: #444 !important;
    margin: 0 0 0.3rem 0 !important;
    padding: 0 !important;
    white-space: normal !important;
    width: 100% !important;
    text-align: left !important;
    line-height: 1.2 !important;
    display: block;
}
/* Remove default margin and padding from .slider-panel header for alignment */
.slider-panel header {
    margin: 0;
    padding: 0;
}
.firm-size-row {
  display: block;
  margin-bottom: 0.5rem;
}

.firm-size-row .result-label-unified {
  display: block;
  text-align: left;
  width: 100%;
  margin-bottom: 0.3rem;
  margin-top: 0;
  /* margin-left removed for alignment with section title */
  padding-left: 0 !important;
}

/* Spacer under the firm size label */
.firm-size-row .firm-size-label-spacer {
  height: 1.1rem;
  width: 100%;
  display: block;
}

.firm-size-radios {
  display: flex;
  flex-direction: column;
  gap: 0;
}
/* Firm size radio buttons - larger and custom color */
.firm-size-radios input[type="radio"] {
  -webkit-appearance: none;
  appearance: none;
  width: 21px;
  height: 21px;
    border: 2px solid var(--primary);
  border-radius: 50%;
  background: #fff;
  outline: none;
  margin-right: 1.1rem;
  position: relative;
  cursor: pointer;
  vertical-align: middle;
  transition: border-color 0.2s, box-shadow 0.2s;
    box-shadow: 0 2px 8px rgba(69, 128, 95, 0.07);
}

.firm-size-radios input[type="radio"]:checked {
    background: var(--primary);
    border-color: var(--primary);
  box-shadow: 0 0 0 3px #444;
}


.firm-size-radio-label {
  font-size: 1.08rem;
  color: #444;
  display: inline-block;
  vertical-align: middle;
  margin-left: 0.2rem;
}

.firm-size-radio-row {
  display: flex;
  align-items: center;
  margin-bottom: 0.7rem;
}
/* Average rate row styled exactly like hourly rate rows */
.average-rate-row {
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    padding: 0.3rem 0;
    margin: 1.0rem 0 0 0 !important;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.average-rate-row .output-label {
    color: #444;
    font-weight: 400;
    font-size: 1rem;
    flex: 1;
    margin-right: 1.2rem;
}

.average-rate-row .output-value {
    color: #444;
    font-weight: 600;
    font-size: 1.08em;
    min-width: 60px;
    text-align: right;
    margin-left: 2.0rem;
}

/* Remove all margin-bottom and padding-bottom from elements that could precede section titles */
.result-row-flex,
.result-label-unified,
.result-value-unified,
.result-label,
.result-value,
.hourly-rate-row,
.hourly-rates-list,
.firm-size-row,
.firm-size-radios,
.empty-row,
.vertical-gap-under-slider,
.factor-under-sliders .result-container,
.result-container {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* Flex row for result label-value pairs */
.result-row-flex {
    display: flex;
    align-items: center;
    gap: 1rem;
}
/* Add gap under the 'Podiel využiteľných konštrukcií' slider */
.reusable-panel .slider-container {
    margin-bottom: 1.4rem;
}

/* Utility: Empty row for vertical spacing (e.g. above 'Faktor podielu využiteľných konštrukcií') */
.empty-row {
    height: 1.4rem;
    width: 100%;
    display: block;
}

/* Make the pre-slider gap in kalkulator3's complexity section smaller */
.slider-group .empty-row {
    height: 0.6rem;
}

/* Add breathing room before firm size header when it follows the GP choice */
.radio-group + header {
    margin-top: 3.8rem;
}
.radio-group + header .main-title {
    margin-top: 0;
}
/* Vertical gap under the 'Podiel využiteľných konštrukcií' slider and under the vyuzitelnost result label */
.vertical-gap-under-slider {
    height: 1.875rem;
    width: 100%;
    display: block;
}
/* FORCE a real, visible gap under the vyuzitelnost label inside the result container */
.factor-under-sliders .result-container .result-label.vyuzitelnost-result-label {
    margin-bottom: 3.5rem !important;
}
/* Removed custom gap for 'Faktor podielu využiteľných konštrukcií' to unify with other result labels */
.factor-under-sliders .result-value.updating {
    color: #444 !important;
    transform: none !important;
    transition: none !important;
}
.factor-under-sliders .result-value {
    transition: none !important;
}
.factor-under-sliders .final-result {
    align-items: flex-start !important;
    padding-left: 0 !important;
}
.factor-under-sliders {
    padding-left: 0 !important;
    margin-left: 0 !important;
    margin-top: 2.5rem !important;
}
.factor-under-sliders {
    padding-left: 0 !important;
    margin-left: 0 !important;
}
.factor-under-sliders .result-container {
    /* Remove forced column layout so .result-row-flex can apply flex row */
    text-align: left !important;
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
}
.factor-under-sliders .result-remark {
    margin-left: auto !important;
    max-width: 320px !important;
    width: auto !important;
}
.result-label-unified {
    font-weight: 400 !important;
    color: #444 !important;
    font-size: 1.2rem !important;
    margin: 0 !important;
    padding-top: 0.5em !important;
    padding-bottom: 0.5em !important;
    white-space: normal !important;
    width: auto !important;
    text-align: left !important;
    line-height: 1.5 !important;
    flex: 0 1 auto;
}
.result-value-unified {
    font-weight: 600 !important;
    color: #444 !important;
    font-size: 2.1rem !important;
    line-height: 1 !important;
    margin: 0 0 0 auto !important;
    padding: 0 !important;
    width: auto !important;
    text-align: right !important;
    flex: 1 1 0%;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}
/* Left align all text in white display fields */
.left-align-field,
.left-align-field * {
    text-align: left !important;
}
.hourly-rates-separate {
    margin-top: 0 !important;
    background: #fff !important;
}

/* Vysvetlivky k výpočtu section styling */
.result-notice {
    margin-top: 24px !important;
    margin-bottom: 16px !important;
    background: #e0e0e0 !important;
    padding: 12px !important;
    border-radius: 0 !important;
}

.result-notice-title {
    display: block;
    font-weight: 400;
    color: #D32F2F;
    margin-bottom: 8px;
}

.result-notice-emphasis {
    display: block;
    font-weight: 400;
    color: #D32F2F;
    margin-bottom: 8px;
}

.result-notice-text {
    display: block;
    color: #D32F2F;
    font-size: 0.95rem;
    line-height: 1.5;
}

/* Average Rates Section Styles */
.average-rates-section {
    margin-top: 2rem;
    padding: 0;
    background: transparent;
}

.average-rates-section header {
    margin-bottom: 1rem;
}

.average-rates-section .main-title {
    font-size: 1.4rem;
}

.average-rates-container {
    background: rgba(69, 128, 95, 0.05);
    border-radius: 0;
    padding: 1.5rem 2rem;
    border-left: 4px solid var(--primary);
}

.average-rates-container .hourly-rates-list {
    margin: 0 0 1.2rem 0;
}

/* Hourly Rates List Styles */
.hourly-rates-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin: 1.2rem 0 1.2rem 0;
}

.hourly-rate-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    padding: 0.3rem 0;
    font-size: 1rem;
    margin: 0;
    width: 100%;
}
/* Removed stray background property outside of selector and fixed malformed block */

/* Ensure no gap or background on hourly rates title block */
.hourly-rates-separate,
.hourly-rates-separate.left-align-field,
.hourly-rates-separate > h2,
.hourly-rates-separate > .main-title {
    margin-top: 0 !important;
    padding-top: 0 !important;
    border-top: none !important;
    outline: none !important;
    box-shadow: none !important;
    background: none !important;
}

.hourly-rate-row .output-label {
    color: #444;
    font-weight: 400;
    flex: 1;
    margin-right: 1.2rem;
}

.hourly-rate-row .output-value {
    color: #444;
    font-weight: 600;
    font-size: 1.08em;
    min-width: 60px;
    text-align: right;
    background: none;
    border-radius: 0;
    padding: 0;
    margin-left: 2.0rem;
}
/* Move the 5 calculated rate results a bit to the right */
.hourly-rate-row .output-value {
    color: #444;
    font-weight: 600;
    font-size: 1.08em;
    min-width: 60px;
    text-align: right;
    background: none;
    border-radius: 0;
    padding: 0;
    margin-left: 2.0rem;
}

/* Simple hourly rates table in kalkulator3 result section */
.hourly-rates-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    background: #fff;
    margin-top: 1rem;
    color: black;
    font-size: 0.8em; /* match result table text size */
    border: none;
    border-bottom: 1px solid #000;
}

/* Column widths: left wide, right matches result-table last column (20%) */
.hourly-rates-table col:nth-child(1) { width: 80%; }
.hourly-rates-table col:nth-child(2) { width: 20%; }

.hourly-rates-table td {
    border: none;
    border-bottom: 1px solid #000;
    padding: 4px 8px;
    height: 24px;
    vertical-align: middle;
}

.hourly-rates-table td:last-child {
    text-align: right;
    font-weight: 600;
}

/* Keep middle rate rows non-bold; only first/last rows stay bold */
.hourly-rates-table tbody tr:not(:first-child):not(:last-child) td:last-child {
    font-weight: 400;
}

/* Keep last row (average) value non-bold, but label bold */
.hourly-rates-table tbody tr:last-child td:last-child {
    font-weight: 400;
}
/* Modern CSS Reset and Base Styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* Unified tile system variables */
:root {
    --tile-size: 275px;
    --tile-gap: 12px;
    --tiles-w3: calc(3 * var(--tile-size) + 2 * var(--tile-gap));
    --tiles-w2: calc(2 * var(--tile-size) + var(--tile-gap));
    --tiles-w1: var(--tile-size);
}

body {
    font-family: Arial, sans-serif;
    background: #ffffff;
    min-height: 100vh;
    line-height: 1.6;
}

/* Smooth in-page scrolling for anchor navigation (respects user motion prefs) */
@media (prefers-reduced-motion: no-preference) {
    /* Let JS control scrolling for consistent cross-browser behavior */
    html { scroll-behavior: auto; }
}

/* Reusable embedded iframe style (used in index scroll-stack) */
.embed-frame {
    width: 100%;
    border: 0;
    display: block;
    height: auto;
    min-height: 0;
    overflow: hidden;
}

/* Ensure embedded pages don't exceed viewport width */
body.embedded, body.embedded html {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
}
body.embedded * {
    max-width: 100% !important;
}

/* Logo Header */
.logo-header {
    position: sticky;
    top: 0;
    display: block;
    text-align: left;
    padding: 0;
    z-index: 1000;
    background: #ffffff;
    margin-bottom: 0.3rem; /* reduced gap under header */

/* === Global header normalization (standard: inner width 1290px x height 108px; padding 0 0 15px) === */
/* This rule is intentionally minimal and placed at the end so it overrides accidental per-page overrides. */
.logo-header {
    padding: 0 0 15px !important; /* keep top/bottom padding as requested */
    min-height: 108px !important;  /* unified header height */
    box-sizing: border-box !important;
}
.logo-header .logo-link { margin-left: 15px !important; padding-left: 8px; padding-top: 4px; }
.logo-header .header-menu { right: 15px !important; top: 50% !important; transform: translateY(-50%) !important; }
.logo-header .logo-img { max-height: 108px; height: auto; }

/* Constrain header inner content width */
.logo-header > * { max-width: 1290px; margin-left: auto; margin-right: auto; }

/* Keep responsive stacking rules intact: do not override small-screen behavior */
@media (max-width: 900px) {
    .logo-header {
        min-height: 32px !important;
        height: 32px !important;
        max-height: 32px !important;
        padding: 0 0 2px 0 !important;
        background: #fff !important;
        box-shadow: 0 1px 4px rgba(0,0,0,0.04);
    }
    .logo-header > * {
        max-width: 100%;
    }
    .logo-header .logo-link {
        margin-left: 4px !important;
    }
    .logo-header .logo-img, .logo-img {
        max-height: 22px !important;
        height: 22px !important;
        width: auto !important;
    }
    .logo-header .header-menu {
        right: 8px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
    }
}
}

/* Add extra breathing room under the sticky header on non-index pages
   to ensure content doesn't collide with the absolute-positioned menu */
body:not(.page-scroll) .logo-header {
    padding-bottom: 0.9rem;
}

.logo-link { display: inline-block; margin: calc(24px + 2em) 0 0 calc(24px + 2em); text-decoration: none; }
.logo-img { height: 37px; vertical-align: middle; display: inline-block; }

/* Removed duplicate mobile logo-header size rules to ensure only the smaller header applies */

/* Deprecated text logo styles removed in favor of image logo */

.container {
    max-width: 800px;
    margin: 0 auto;
    padding: 0.5rem 1.4rem;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Remove min-height for embedded pages (standardy, kalkulator iframes) */
body.embedded .container {
    min-height: 0 !important;
    justify-content: flex-start !important;
    padding: 0 !important;
}

@media (max-width: 900px) {
    .container {
        max-width: calc(100vw - 1rem);
        width: calc(100vw - 1rem);
        padding: 0.5rem;
        /* Force safe long-word wrapping on narrow screens */
        word-break: break-word;
        overflow-wrap: anywhere;
    }
}

/* Reserve a small consistent space under the sticky header for content across subpages */
body:not(.page-scroll) .container {
    /* Use actual header height if available; fallback ensures desktop spacing */
    padding-top: calc(var(--header-offset, 108px) + 12px);
}

/* Index landing section: allow 3 cards per row by widening the container */
#section-index .container {
    max-width: var(--tiles-w3);
    padding-left: 0;
    padding-right: 0;
    margin-left: auto;
    margin-right: auto;
}

/* Standardy and Kalkulator sections: match Index section container styles */
#section-standardy .container,
#section-kalkulator .container {
    max-width: var(--tiles-w3);
    padding-left: 0;
    padding-right: 0;
    margin-left: auto;
    margin-right: auto;
}

/* Harden index landing grid: ensure no slider-panel padding and exact 3/2/1 widths */
body.page-index-minimal #section-index .landing-panel {
    padding: 0 !important;
    max-width: calc(3 * 275px + 24px) !important;
    margin-left: auto;
    margin-right: auto;
}
@media (max-width: 900px) {
    body.page-index-minimal #section-index .landing-panel { 
        max-width: var(--tiles-w1-mobile-inner) !important; 
        width: var(--tiles-w1-mobile-inner) !important;
        padding: 0 !important;
    }
    #section-standardy .landing-panel,
    #section-kalkulator .landing-panel { 
        max-width: var(--tiles-w1-mobile-inner) !important; 
        width: var(--tiles-w1-mobile-inner) !important;
        padding: 0 !important;
    }
}
/* index container uses its own breakpoints below via .main-content-index */
/* (removed stray one-off max-width for kalkulátor to keep shared 3/2/1 logic) */
body.page-standardy .container {

    padding-right: 0;
    min-height: 0; /* don't enforce full viewport height on this wrapper */
    justify-content: flex-start;
    align-items: center; /* center landing-panel horizontally for 1-col mobile */
}

.plan-sluzieb-container {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    overflow: hidden;
    width: 100%;
    box-sizing: border-box;
    padding: 0 1.4rem;
}

/* Table Wrapper for Mobile Horizontal Scrolling */
.plan-table-wrapper {
    overflow-x: auto;
    margin-bottom: 2rem;
    border: none;
}
/* Intro text above the three index tiles, matching grid width */
#section-index .index-intro {
    margin-top: 4em !important;
    max-width: var(--tiles-w3);
    margin: 0 auto 4.5em auto; /* ~3 line-heights (line-height: 1.5) gap to the squares below */
    padding: 0 10px;           /* match the squares' side padding */
    color: #0e0e0e;
    line-height: 1.5;
    font-size: 1.05rem;
}
#section-index .index-intro .index-intro-content p { margin: 0 0 0.8rem 0; }

/* Sections 2 & 3: Standardy and Kalkulator intro blocks */
#section-standardy .index-intro,
#section-kalkulator .index-intro {
    max-width: var(--tiles-w3);
    margin: 0 auto 2.5em auto;
    padding: 0 10px;
    color: #0e0e0e;
    line-height: 1.5;
    font-size: 1.05rem;
}
#section-kalkulator .index-intro {
    margin-top: 1.5rem;
}
#section-standardy .index-intro .index-intro-content p,
#section-kalkulator .index-intro .index-intro-content p { 
    margin: 0 0 0.8rem 0; 
}

/* Standardy/Kalkulátor section intro blocks aligned to 3/2/1 columns
   Keep width matched to 3 tiles but align to the left edge of the grid */
.section-intro {
    width: var(--tiles-w3);
    max-width: var(--tiles-w3);
    margin: 0 auto 1.5em auto;  /* reduced from 4.5em to 1.5em */
    box-sizing: border-box;      /* keep outer width when padding */
    padding: 0 10px;             /* match squares' 10px side padding */
    color: #0e0e0e;
    line-height: 1.5;
    font-size: 1.05rem;
    text-align: left;           /* left-align text within */
}
@media (max-width: 900px) {
    :root {
        --tiles-w1-mobile: calc(100vw - 2rem);
        --tiles-w1-mobile-inner: calc(100vw - 4rem);
    }
    .section-intro { width: var(--tiles-w1-mobile); max-width: var(--tiles-w1-mobile); margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; }
    #section-index .index-intro { max-width: var(--tiles-w1-mobile); margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; }
    #section-standardy .index-intro,
    #section-kalkulator .index-intro { max-width: var(--tiles-w1-mobile); margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; }
    #section-index .container { max-width: var(--tiles-w1-mobile); }
    #section-standardy .container,
    #section-kalkulator .container { max-width: var(--tiles-w1-mobile); }
    /* Hard switch to single column at 900px for all shared wrappers */
    .main-content-index { max-width: var(--tiles-w1-mobile) !important; width: var(--tiles-w1-mobile) !important; }
    .landing-panel { max-width: var(--tiles-w1-mobile-inner) !important; width: var(--tiles-w1-mobile-inner) !important; }
    #section-standardy .main-content-index { max-width: var(--tiles-w1-mobile) !important; width: var(--tiles-w1-mobile) !important; }
    body.embedded .landing-panel { max-width: var(--tiles-w1-mobile-inner) !important; width: var(--tiles-w1-mobile-inner) !important; }
    /* Add small horizontal padding for text readability */
    .section-intro { padding-left: 1rem !important; padding-right: 1rem !important; }
    #section-index .index-intro { padding-left: 1rem !important; padding-right: 1rem !important; }
    #section-standardy .index-intro,
    #section-kalkulator .index-intro { padding-left: 1rem !important; padding-right: 1rem !important; }
}

/* Kalkulátor section container - removed conflicting full-width rules to match other sections */

/* Shared wrapper width for 3/2/1 column grids (used by Standardy and others) */
.main-content-index {
    width: 100%;
    max-width: 100vw;
    margin: 25px auto 0 auto;
    padding: 1rem 0;
    box-sizing: border-box;
    overflow-x: hidden;
}
@media (max-width: 900px) { .main-content-index { max-width: 100vw; padding: 0 1rem !important; margin: 0 auto !important; min-height: 0 !important; box-sizing: border-box; } }

/* Plan page: allow full available width like other subpages */
body.page-plan-sluzieb .main-content.main-content-index {
    max-width: 100% !important;
    width: 100% !important;
    padding: 1rem 1.4rem;
    box-sizing: border-box;
}

@media (max-width: 900px) {
    body.page-plan-sluzieb .main-content.main-content-index {
        padding: 0.75rem 1rem;
    }
}

/* Slovník pojmov page: allow full available width like plan-sluzieb */
body.page-slovnik-pojmov .main-content.main-content-index {
    max-width: 100% !important;
    width: 100% !important;
    padding: 1rem 1.4rem;
    box-sizing: border-box;
}

@media (max-width: 900px) {
    body.page-slovnik-pojmov .main-content.main-content-index {
        padding: 0.75rem 1rem 2rem 1rem;
    }
}

/* Zadanie kalkulácie page: allow full available width like slovnik-pojmov */
body.page-zadanie .main-content.main-content-index {
    max-width: 100% !important;
    width: 100% !important;
    padding: 1rem 1.4rem;
    box-sizing: border-box;
}

@media (max-width: 900px) {
    body.page-zadanie .main-content.main-content-index {
        padding: 0.75rem 1rem;
    }
}

body.page-ai-asistent .main-content.main-content-index {
    background: #222222;
}

body.page-ai-asistent .final-result {
    background: #222222 !important;
    padding: 18px 0;
}

/* Ensure the AI assistant page uses a dark canvas behind the main embed */
body.page-ai-asistent {
    background: #222222 !important;
}

/* Inside kalkulator page, padding handled by mobile breakpoint */

/* Index section: remove extra vertical spacing around the three green squares */
#section-index .main-content-index {
    margin-top: 0;
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 0;
    display: block;     /* don't use flex centering here */
    min-height: 0;      /* remove tall container height */
}
#section-index .landing-panel { margin-top: 0; margin-bottom: 0; }

/* Standardy & Kalkulátor: use only section padding for the bottom gap under squares */
#section-standardy .main-content-index,
#section-kalkulator .main-content-index { padding-bottom: 0; margin-bottom: 0; }
#section-standardy .landing-panel,
#section-kalkulator .landing-panel { margin-bottom: 0; }


/* Embedded pages: ensure no trailing space inside iframes under their landing grids */
body.embedded .main-content-index { padding-bottom: 0 !important; margin-bottom: 0 !important; }
body.embedded .landing-panel { margin-bottom: 0 !important; }

/* Removed duplicate mobile media query for #section-kalkulator .container */

.page-scroll .logo-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    background: #ffffff; /* match body background */
    z-index: 1000;
    padding-bottom: 15px; /* extra white margin under the header logo */
}
.page-scroll,
html.page-scroll,
body.page-scroll {
    scroll-padding-top: var(--header-offset, 132px);
    background: #000000;
}
.page-scroll .scroll-stack {
    display: block;
    width: 100%;
    margin: 0 auto;
    /* Provide initial gap so the first section isn't covered by the fixed header */
    padding-top: var(--header-offset, 132px);
    overflow-x: hidden;
}
/* Invisible marker used to place a virtual anchor equal to header height
   Inserted before each .scroll-section to ensure cross-browser exact alignment */
.scroll-marker {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}
.page-scroll .scroll-section {
    padding: 0 0 0 0;
    overflow-x: hidden;
    scroll-margin-top: var(--header-offset, 132px);
}
.page-scroll #section-index,
.page-scroll #section-kalkulator {
    /* Set light gray background for the index and kalkulátor sections in the scroll layout */
    background: #dfdedc !important;
    padding-top: 1.5rem;
}
.page-scroll #section-kalkulator {
    padding-top: 0;
}
/* Standardy section in scroll layout should be a full-width white stripe */
.page-scroll #section-standardy {
    background: #ffffff !important;
    padding-top: 1.5rem;
}
/* Standardy section background is handled by consolidated rule below */
/* Removed desktop scroll-margin override that prevented proper anchor scrolling */
.page-scroll .container {
    min-height: 0; /* reset min-height for stacked sections */
    justify-content: flex-start;
}

/* Unified vertical spacing: use same bottom gap as Index (2rem) under squares */
#section-standardy { padding-bottom: 0.5rem !important; }
#section-standardy .main-content-index {
    padding-bottom: 0.5rem !important;
    margin-bottom: 0 !important;
    display: block;
}
#section-kalkulator { padding-bottom: 0.5rem !important; }
#section-kalkulator .container { padding-top: 0 !important; margin-bottom: 0 !important; }
#section-kalkulator .main-content-index {
    padding-bottom: 0.5rem !important;
    margin-bottom: 0 !important;
    display: block;
}

#iframe-standardy,
#iframe-kalkulator {
    margin-bottom: 0 !important;
}

.iframe-gap {
    display: none;
}


/* Scroll layout hosts: let embedded pages center themselves inside full-width wrappers */
.page-scroll #section-standardy .main-content-index,
.page-scroll #section-kalkulator .main-content-index {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* In scroll layout, let embedded pages use their own breakpoints; keep iframe full width */
.page-scroll #section-standardy .embed-frame,
.page-scroll #section-kalkulator .embed-frame {
    display: block !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box;
}
/* Remove inner white box; let the section stripe carry the background */
#section-standardy .main-content-index { background: transparent !important; }
/* Keep embedded pages (standardy/kalkulator iframes) on white background */
body.embedded:not(.page-kalkulator) { background: #ffffff !important; }

/* Header Styles */
header {
    text-align: left;
    margin-bottom: 2.1rem;
}


/* Unify all section titles (main, reusable, and hourly rate) to look identical */
.main-title,
.section-title,
.reusable-panel h2,
.slider-panel header h1 {
    font-size: 1.85rem;
    font-weight: 300;
    margin-bottom: 0.5rem;
    text-shadow: none;
    line-height: 1.2;
}

/* Kalkulator3 specific styles */
.page-kalkulator .slider-panel > header:first-of-type h1.main-title {
    margin-bottom: 2rem;
}

.page-kalkulator .slider-panel h2.main-title {
    font-size: 1.4rem;
}

/* Add larger gap above Faktor náročnosti zadania section */
.page-kalkulator .odhad-container + header {
    margin-top: calc(2.5 * 2.1rem);
}

/* Reduce gap above Faktor podielu využiteľných konštrukcií and Hodnota nákladov sections */
.page-kalkulator .reusable-panel .section-title-spacer-4x,
.page-kalkulator .hourly-rates-separate .section-title-spacer-4x {
    height: calc(2.5 * 2.1rem);
}

#finalFactor,
#reusableFactor {
    display: none;
}

    /* Removed stray color property that was outside of a selector */

.slider-panel header p {
    color: #666;
    font-weight: 400;
}

/* Slider Panel */
.slider-panel {
    background: rgba(255,255,255,0.95);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    border-radius: 0;
    padding: 1.4rem 2.2rem;
    box-shadow: 0 20px 40px rgba(0,0,0,0.1);
    margin-bottom: 1.4rem;
    margin-top: 80px; /* Add top margin to clear the header logo (default for most pages) */
}

/* Standardy landing-panel uses global flex-based wrapping from .landing-panel */

/* Kalkulator landing: dedicated layout without slider-panel */
.page-kalkulator .kalkulator-landing {
    margin-top: 40px; /* bring content higher under the menu */
    padding: 0;      /* no panel padding */
    display: flex;
    flex-direction: column;
    align-items: center; /* center children with max-width */
}

/* Standalone kalkulátor page: uses global body background */

/* Remove spacing from the empty header inside kalkulator landing */
.page-kalkulator .kalkulator-landing > header {
    margin: 0 !important;
    padding: 0 !important;
    display: none; /* hide unused header to remove extra gap */
}

/* Removed kalkulator-specific header margin to use the shared header style */

/* Top-align kalkulator page content instead of vertical centering */
.page-kalkulator .container,
.page-factor-detail .container {
    justify-content: flex-start !important;
}

/* Reduce excessive gap above kalkulator intro so it matches other sections.
   Keep the default .slider-panel top margin for other pages; override here. */
.page-kalkulator .slider-panel,
.page-factor-detail .slider-panel {
    margin-top: 24px; /* align with other section spacing */
}

/* Ensure in-page anchors on kalkulator pages respect the JS-calculated header offset
   so intro text doesn't scroll under the fixed logo/menu field. */
body.page-kalkulator.page-scroll .scroll-section {
    scroll-margin-top: var(--header-offset, 132px) !important;
}

/* Shared width for kalkulátor headings and card grid */
.page-kalkulator .kalkulator-landing .choices-container {
    max-width: var(--tiles-w3);
    width: var(--tiles-w3);
    margin-left: auto;
    margin-right: auto;
    gap: var(--tile-gap);
}
/* Ensure kalkulátor intro width matches the grid width for alignment */
.page-kalkulator .kalkulator-intro {
    width: var(--tiles-w3);
    max-width: var(--tiles-w3);
    margin-left: auto;
    margin-right: auto;
}
/* Widen kalkulator container to fit 3 cards per row */
.page-kalkulator .container,
.page-factor-detail .container { 
    max-width: var(--tiles-w3); 
}
@media (max-width: 900px) { 
    .page-kalkulator .container,
    .page-factor-detail .container { 
        max-width: calc(100vw - 1rem);
        width: calc(100vw - 1rem);
        padding: 0.5rem;
    } 
}





.page-kalkulator .kalkulator-landing .main-title,
.page-kalkulator .kalkulator-landing .instruction-label-unified {
    width: var(--cards-width);
    max-width: var(--cards-width);
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
    text-align: left;
}

/* Override global 100% width on instruction so it centers to the cards width */
.page-kalkulator .kalkulator-landing .instruction-label-unified {
    width: var(--cards-width) !important;
    max-width: var(--cards-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* On small screens, when squares wrap, match single card width */
@media (max-width: 900px) {
    .page-kalkulator .kalkulator-landing { --cards-per-row: 1; }
}

/* Remove background, box-shadow, and padding for merged sub-sections inside .slider-panel */
.slider-panel .reusable-panel,
.slider-panel .output-panel {
    background: none !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.slider-group {
    display: flex;
    flex-direction: column;
    gap: 1.4rem;
}

/* Slider Container */
.slider-container {
    position: relative;
    margin-bottom: 0.7rem;
    --slider-block-percent: 12.5%;
    --slider-block-gap: 8px;
    --slider-track-height: 18px;
}

.slider-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.7rem;
    font-weight: 400;
    color: #444;
}

.label-text {
    font-size: 1rem;
}

.label-text a {
    color: inherit;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.label-text a::after {
    content: " →";
    font-size: 1.0em;
    opacity: 0.8;
    margin-left: 0.3em;
}

.label-text a:hover {
    opacity: 0.7;
    text-decoration: underline;
}

/* Title link styling - maintains h2 font size with arrow */
.main-title .title-link {
    color: inherit;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.main-title .title-link::after {
    content: " →";
    font-size: 1.0em;
    opacity: 0.8;
    margin-left: 0.3em;
}

.main-title .title-link:hover {
    opacity: 0.7;
    text-decoration: underline;
}

/* Subtitle styling - matching kalkulator1-section label-text size */
.subtitle {
    font-size: 1.2rem;
    font-weight: 300;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
    color: #444;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

@media (max-width: 900px) {
    .subtitle {
        font-size: 0.95rem;
        line-height: 1.3;
    }
    
    .checkbox-label span {
        font-size: 0.95rem !important;
        word-wrap: break-word;
        overflow-wrap: break-word;
        line-height: 1.3;
    }
    
    .renovation-scope-checkbox-label {
        font-size: 0.95rem !important;
        word-wrap: break-word;
        overflow-wrap: break-word;
        line-height: 1.3;
    }
}

/* Subtitle link styling - with arrow indicator */
.subtitle-link {
    color: inherit;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.subtitle-link::after {
    content: " →";
    font-size: 1.0em;
    opacity: 0.8;
    margin-left: 0.3em;
}

.subtitle-link:hover {
    opacity: 0.7;
    text-decoration: underline;
}

/* Screen-reader only helper for tooltip copy */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
    white-space: nowrap;
}

/* Minimal info chip to hint hover for tooltip title */
.tooltip-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    margin-left: 0.5rem;
    border-radius: 999px;
    background: #e5e5e5;
    color: #444;
    font-weight: 600;
    font-size: 0.9rem;
    line-height: 1;
    cursor: help;
    -webkit-user-select: none;
    user-select: none;
}

.tooltip-trigger:hover {
    background: #d2d2d2;
}

.value-display {
    display: none; /* Hidden but still functional in calculations */
}

/* Custom Slider Styles */
.slider {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    --slider-track-height: 18px;
    width: 100%;
    height: 44px;
    border-radius: 0;
    background: transparent;
    outline: none;
    border: none;
    position: relative;
    z-index: 2;
    cursor: pointer;
    transition: all 0.3s ease;
    touch-action: manipulation;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.slider::-webkit-slider-track {
    background: transparent;
    border: none;
    outline: none;
    height: var(--slider-track-height);
    border-radius: 0;
    -webkit-appearance: none;
}

.slider::-webkit-slider-runnable-track {
    background: transparent;
    border: none;
    outline: none;
    height: var(--slider-track-height);
    border-radius: 0;
    -webkit-appearance: none;
}

.slider::-moz-range-track {
    background: transparent;
    border: none;
    outline: none;
    height: var(--slider-track-height);
    border-radius: 0;
    -moz-appearance: none;
}

.slider:focus {
    outline: none !important;
    border: none !important;
}

.slider:focus::-webkit-slider-track {
    outline: none !important;
    border: none !important;
}

.slider:focus::-moz-range-track {
    outline: none !important;
    border: none !important;
}

/* Track Fill Effect */
.slider-track-fill {
    position: absolute;
    top: auto;
    bottom: calc((44px - var(--slider-track-height)) / 2);
    transform: none;
    left: 0;
    height: var(--slider-track-height);
    background: repeating-linear-gradient(
        to right,
        rgba(69, 128, 95, 0.95) 0,
        rgba(69, 128, 95, 0.95) calc(var(--slider-block-percent) - var(--slider-block-gap)),
        rgba(69, 128, 95, 0.70) calc(var(--slider-block-percent) - var(--slider-block-gap)),
        rgba(69, 128, 95, 0.70) var(--slider-block-percent)
    );
    border-radius: 0;
    z-index: 1;
    transition: width 0.2s ease;
    pointer-events: none;
    width: 0%;
    display: block !important;
    visibility: visible !important;
}

.slider-stops {
    position: absolute;
    left: 0;
    width: 100%;
    bottom: calc((44px - var(--slider-track-height)) / 2 - 2px);
    height: var(--slider-track-height);
    pointer-events: none;
    z-index: 3;
}

.slider-stop {
    position: absolute;
    bottom: 0;
    width: 2px;
    height: calc(var(--slider-track-height) + 6px);
    background: #4f4f4f;
    opacity: 0.6;
    transform: translateX(-50%);
}

/* Slider track background */
.slider-container::before {
    content: '';
    position: absolute;
    top: auto;
    bottom: calc((44px - var(--slider-track-height)) / 2);
    transform: none;
    left: 0;
    width: 100%;
    height: var(--slider-track-height);
    background: #e6e6e6;
    border-radius: 0 !important;
    z-index: 0;
    display: block !important;
    visibility: visible !important;
}

.slider:hover {
    transform: translateY(-1px);
    box-shadow: none;
}

.slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 16px;
    height: 34px;
    border-radius: 0;
    background: var(--primary);
    cursor: pointer;
    border: 2px solid var(--primary);
    box-shadow: none;
    transition: all 0.3s ease;
    /* Align with kalkulator3 slider thumb sizing/offset */
    margin-top: calc((44px - 34px) / 2 - 3px);
    touch-action: manipulation;
    -webkit-user-select: none;
    user-select: none;
}

.slider::-webkit-slider-thumb:hover {
    transform: scale(1.08) translateY(-1px);
    box-shadow: none;
}

.slider::-moz-range-thumb {
    width: 16px;
    height: 34px;
    border-radius: 0;
    background: var(--primary);
    cursor: pointer;
    border: 2px solid var(--primary);
    box-shadow: none;
    transition: all 0.3s ease;
    /* Align with kalkulator3 slider thumb sizing/offset */
    margin-top: calc((44px - 34px) / 2 - 3px);
    touch-action: manipulation;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
}

/* Override for wedge slider in Firefox - push thumb down significantly */
.wedge-slider .slider::-moz-range-thumb {
    margin-top: 25px !important;
}

/* Kalkulator1: extend wedge slider thumb downward by 20px while keeping top alignment */
.wedge-slider .slider::-webkit-slider-thumb {
    height: 44px;
    margin-top: 2px;
}

.wedge-slider .slider::-moz-range-thumb {
    height: 44px;
    margin-top: 2px;
}

.wedge-slider #complexitySlider::-moz-range-thumb {
    margin-top: 25px !important;
}

#complexitySlider::-moz-range-thumb {
    margin-top: 25px !important;
}

/* Track Fill Effect - Remove separate overlay, now integrated into slider */

/* Reusable Panel */
.reusable-panel {
    background: transparent;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    border-radius: 0;
    padding: 1.4rem 2.2rem;
    box-shadow: none;
    margin-bottom: 1.4rem;
}

/* Custom styling for reusable slider */
.reusable-panel .slider {
    height: 44px; /* Match standard slider height */
    border-radius: 0; /* Rectangular strip */
    touch-action: manipulation;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.reusable-panel .slider::-webkit-slider-track {
    height: 32px;
    border-radius: 0;
    -webkit-appearance: none;
}

.reusable-panel .slider::-webkit-slider-runnable-track {
    height: 18px;
    border-radius: 0;
    -webkit-appearance: none;
}

.reusable-panel .slider::-moz-range-track {
    height: 18px;
    border-radius: 0;
    -moz-appearance: none;
}

/* Rectangular slider thumb for reusable slider matching complexity slider */
.reusable-panel .slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 16px;
    height: 34px;
    border-radius: 0;
    background: var(--primary);
    cursor: pointer;
    border: 2px solid var(--primary);
    box-shadow: none;
    transition: all 0.3s ease;
    margin-top: calc((44px - 34px) / 2 - 3px);
    touch-action: manipulation;
    -webkit-user-select: none;
    user-select: none;
}

.reusable-panel .slider::-webkit-slider-thumb:hover {
    transform: scale(1.08) translateY(-1px);
    box-shadow: none;
}

.reusable-panel .slider::-moz-range-thumb {
    width: 16px;
    height: 34px;
    border-radius: 0;
    background: var(--primary);
    cursor: pointer;
    border: 2px solid var(--primary);
    box-shadow: none;
    transition: all 0.3s ease;
    margin-top: calc((44px - 34px) / 2 - 3px);
    touch-action: manipulation;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
}

/* Adjust track fill for reusable slider */

.reusable-panel .slider-track-fill {
    height: 18px;
    border-radius: 0;
    top: auto;
    /* Nudge fill down 3px to align with track (Podiel využiteľných konštrukcií slider) */
    bottom: calc((44px - 18px) / 2 - 3px);
    margin: 0;
    transform: none;
    z-index: 1;
    display: block !important;
    visibility: visible !important;
}

/* Apply same Podiel slider styles to complexity sliders in slider-group */
.slider-group .slider-container .slider {
    height: 44px; /* Match standard slider height */
    border-radius: 0; /* Rectangular strip */
    touch-action: manipulation;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.slider-group .slider-container .slider::-webkit-slider-track {
    height: 32px;
    border-radius: 0;
    -webkit-appearance: none;
}

.slider-group .slider-container .slider::-webkit-slider-runnable-track {
    height: 18px;
    border-radius: 0;
    -webkit-appearance: none;
}

.slider-group .slider-container .slider::-moz-range-track {
    height: 18px;
    border-radius: 0;
    -moz-appearance: none;
}

.slider-group .slider-container .slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 16px;
    height: 34px;
    border-radius: 0;
    background: var(--primary);
    cursor: pointer;
    border: 2px solid var(--primary);
    box-shadow: none;
    transition: all 0.3s ease;
    margin-top: calc((44px - 34px) / 2 - 3px);
    touch-action: manipulation;
    -webkit-user-select: none;
    user-select: none;
}

.slider-group .slider-container .slider::-webkit-slider-thumb:hover {
    transform: scale(1.08) translateY(-1px);
    box-shadow: none;
}

.slider-group .slider-container .slider::-moz-range-thumb {
    width: 16px;
    height: 34px;
    border-radius: 0;
    background: var(--primary);
    cursor: pointer;
    border: 2px solid var(--primary);
    box-shadow: none;
    transition: all 0.3s ease;
    margin-top: calc((44px - 34px) / 2 - 3px);
    touch-action: manipulation;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
}

.slider-group .slider-container .slider-track-fill {
    height: 18px;
    border-radius: 0;
    top: auto;
    /* Nudge fill down 3px to exactly match grey track baseline in browsers */
    bottom: calc((44px - 18px) / 2 - 3px);
    margin: 0;
    transform: none;
    z-index: 1;
    display: block !important;
    visibility: visible !important;
}

/* Adjust track background for reusable slider */
.reusable-panel .slider-container::before {
    height: 32px;
    border-radius: 0;
    top: calc(100% - 42px); /* This value aligns the track with the custom thumb for the reusable slider */
    bottom: auto;
    margin: 0;
    transform: none;
    z-index: 0;
    display: block !important;
    visibility: visible !important;
}

/* Output Panel */
.output-panel {
    background: none;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
}

.output-panel h3 {
    color: #444;
    font-size: 1.3rem;
    margin-bottom: 1.5rem;
    text-align: center;
}

/* Final Result Styles */
.final-result {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding: 0;
    width: 100%;
}

.page-faq .final-result {
    margin-top: 60px;
    margin-bottom: -60px;
}

.page-ai-asistent .final-result {
    justify-content: center;
}

.final-result-90 {
    width: 90%;
    margin-left: auto;
    margin-right: auto;
}

.page-zmluva .final-result {
    width: 90%;
    margin-left: auto;
    margin-right: auto;
    padding-top: 0.25rem;
    padding-bottom: 2rem;
    margin-top: 0.5rem;
}

.page-zakladne-udaje .content-narrow {
    max-width: 900px;
    margin: 0 auto;
    padding: 2rem 1.5rem;
}

@media (max-width: 900px) {
    .page-zakladne-udaje .content {
        padding: 1rem !important;
        margin: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    .page-zakladne-udaje .main-content,
    .page-zakladne-udaje .main-content-index {
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    .page-zakladne-udaje .container {
        max-width: 100% !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    .page-zakladne-udaje .content-narrow {
        padding: 0 1rem !important;
        max-width: 100% !important;
        width: 100% !important;
    }
    .page-zakladne-udaje .content-narrow p:last-of-type {
        margin-bottom: 10rem !important;
    }
}

.page-zakladne-udaje h1.page-title {
    font-weight: 300;
    margin-bottom: 1.5rem;
}

/* Optional top margin when the final result needs breathing room */
.final-result-margin {
    margin-top: 2.5rem;
}

/* Extra spacing when a final-result block sits above the footer */
.final-result-spacing {
    margin-bottom: 2.5rem;
}

.result-container {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.1rem;
    text-align: left;
    width: 100%;
    padding: 1.4rem 2.2rem;
}

.result-remark {
    margin-top: 0;
    margin-left: 1.5rem;
    padding: 1.2rem;
    background: rgba(69, 128, 95, 0.1);
    border-radius: 0;
    width: calc(100% - 1.5rem);
    max-width: calc(100% - 1.5rem);
}

.result-remark p {
    font-size: 1.1rem;
    color: #666;
    font-style: italic;
    line-height: 1.4;
    margin: 0;
    word-wrap: break-word;
}

.result-label {
    font-weight: 400;
    color: #444;
    font-size: 1.2rem;
    margin-bottom: 0 !important;
    white-space: normal;
    width: 100%;
    text-align: left;
    line-height: 1.2;
    padding-left: 0 !important;
}

/* Nudge the first result label in the hourly rates panel to the left to align with other field labels */

.result-value {
    font-weight: 600;
    color: #444;
    font-size: 2.1rem;
    line-height: 1;
    text-align: center;
}

/* Back Link Styles */
.back-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    background: #708AA7;
    color: white;
    text-decoration: none;
    font-weight: 400;
    font-size: 1.8rem;
    border: none;
    border-radius: 50%;
    transition: all 0.3s ease;
    vertical-align: middle;
    box-sizing: border-box;
    line-height: 1;
}

.back-link:hover {
    background: #000000;
    color: white;
    transform: scale(1.05);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

/* Reset Button Styles */
 .reset-button {
     display: inline-block;
    margin-left: 1rem;
     color: var(--primary);
     background: transparent;
     text-decoration: none;
     font-weight: 400;
     font-size: 1.1rem;
     padding: 0.7rem 1.4rem;
     border: 2px solid var(--primary);
     border-radius: 0;
     transition: all 0.3s ease;
     cursor: pointer;
    vertical-align: middle;
    box-sizing: border-box;
    line-height: 1.2;
    -webkit-appearance: none;
    appearance: none;
    text-align: center;
 }
 
 .reset-button:hover {
     background: var(--primary);
     color: white;
     transform: translateY(-2px);
     box-shadow: 0 4px 8px rgba(69, 128, 95, 0.3);
 }
 
 .reset-button:active {
     transform: translateY(0);
     box-shadow: 0 2px 4px rgba(69, 128, 95, 0.2);
 }

/* Mobile: Scale down reset button */
@media (max-width: 900px) {
    .back-link {
        width: 60px;
        height: 60px;
        font-size: 1.4rem;
    }
    
    .reset-button {
        display: inline-block;
        margin-left: 0.5rem;
        margin-top: 0.5rem;
        font-size: 0.8rem;
        padding: 0.5rem 1rem;
        border-width: 2.0px;
    }
}

/* Mobile override: keep buttons aligned inside kalkulator flex container */
@media (max-width: 900px) {
    .page-kalkulator .back-link-container .back-link,
    .page-kalkulator .back-link-container .reset-button {
        display: inline-flex;
        align-items: center;
    }
    .page-kalkulator .back-link-container .reset-button {
        margin-left: 0;
        margin-top: 0;
    }
}

.output-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1rem;
}

.output-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    background: rgba(69, 128, 95, 0.1);
    border-radius: 12px;
    border-left: 4px solid var(--primary);
    transition: all 0.3s ease;
}

.output-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.output-label {
    font-weight: 400;
    color: #555;
}

.output-value {
    font-weight: 400;
    color: var(--primary);
    font-size: 1.1rem;
}

/* Complexity Factor Slider Styles */
.complexity-label {
    font-size: 1.15em !important;
}

.slider-description {
    position: relative;
    width: 100%;
    margin-bottom: 12px;
    font-size: 0.9em;
    color: #000;
    height: 14px;
}

.slider-description span {
    position: absolute;
    font-weight: 400;
}

/* Default 4-label layout for all sliders */
.desc-low {
    left: 9.09%; /* centered at 1.1 on 1.0–2.1 range */
    transform: translateX(-50%);
}

.desc-medium {
    left: 36.36%; /* centered at 1.4 on 1.0–2.1 range */
    transform: translateX(-50%);
}

.desc-high {
    left: 63.64%; /* centered at 1.7 on 1.0–2.1 range */
    transform: translateX(-50%);
}

.desc-exceptional {
    left: 90.91%; /* centered at 2.0 on 1.0–2.1 range */
    transform: translateX(-50%);
}

/* Override for wedge-slider only: 3-label layout */
.wedge-slider .desc-low {
    left: 0%;
    transform: translateX(0%);
    white-space: nowrap;
}

.wedge-slider .desc-medium {
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
}

.wedge-slider .desc-high {
    left: 100%;
    transform: translateX(-100%);
    white-space: nowrap;
}

/* Restore larger gap under the description labels only on detailed kalkulátor page */
.page-kalkulator .slider-description,
.page-kalkulator .slider-panel .slider-description {
    margin-bottom: 0.25rem; /* tighten space between labels and slider line */
    height: 12px;
}

/* Slider stops dots container */
.wedge-slider .slider-stops {
    position: absolute;
    width: 100%;
    height: 10px;
    margin-bottom: 0;
    margin-top: 0;
    top: calc(100% - 52px); /* push dots (and their numbers) down to create space under labels */
    left: 0;
    pointer-events: none;
}

/* Individual stop dots - now vertical lines */
.wedge-slider .stop-dot {
    position: absolute;
    width: 1px;
    height: 16px;
    background: var(--primary);
    border: none;
    border-radius: 0;
    transform: translateX(-50%);
    bottom: 0;
    right: -8px;
}

/* Tiny numeric labels above each stop dot (1–11) */
.wedge-slider .stop-dot::before {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 0.55rem;
    line-height: 1;
    color: #444;
    font-weight: 600;
    content: '';
    pointer-events: none;
    white-space: nowrap;
}
.wedge-slider .stop-dot:nth-child(1)::before { content: '0'; }
.wedge-slider .stop-dot:nth-child(2)::before { content: '1'; }
.wedge-slider .stop-dot:nth-child(3)::before { content: '2'; }
.wedge-slider .stop-dot:nth-child(4)::before { content: '3'; }
.wedge-slider .stop-dot:nth-child(5)::before { content: '4'; }
.wedge-slider .stop-dot:nth-child(6)::before { content: '5'; }
.wedge-slider .stop-dot:nth-child(7)::before { content: '6'; }
.wedge-slider .stop-dot:nth-child(8)::before { content: '7'; }
.wedge-slider .stop-dot:nth-child(9)::before { content: '8'; }
.wedge-slider .stop-dot:nth-child(10)::before { content: '9'; }
.wedge-slider .stop-dot:nth-child(11)::before { content: '10'; }

/* Position each dot based on its data-value (1.0 to 2.0 range) */
/* Adjusted to account for thumb width - dots align with thumb center at each stop */
.wedge-slider .stop-dot[data-value="1.0"] { left: 1.35%; }
.wedge-slider .stop-dot[data-value="1.1"] { left: 11.08%; }
.wedge-slider .stop-dot[data-value="1.2"] { left: 20.81%; }
.wedge-slider .stop-dot[data-value="1.3"] { left: 30.54%; }
.wedge-slider .stop-dot[data-value="1.4"] { left: 40.27%; }
.wedge-slider .stop-dot[data-value="1.5"] { left: 50%; }
.wedge-slider .stop-dot[data-value="1.6"] { left: 59.73%; }
.wedge-slider .stop-dot[data-value="1.7"] { left: 69.46%; }
.wedge-slider .stop-dot[data-value="1.8"] { left: 79.19%; }
.wedge-slider .stop-dot[data-value="1.95"] { left: 88.92%; }
.wedge-slider .stop-dot[data-value="2.15"] { left: 98.65%; }

/* Move the slider input down */
.wedge-slider #complexitySlider {
    margin-top: 24px; /* drop slider further without moving dots */
    padding-top: 20px; /* Firefox: extra vertical space to push thumb down */
}

/* Firefox fix: Push wedge slider thumb down to sit on the track line */
.wedge-slider #complexitySlider::-moz-range-thumb {
    margin-top: 28px !important;
}

.wedge-slider .slider::-moz-range-thumb {
    margin-top: 28px !important;
}

/* Kalkulator1 ONLY: Wedge-shaped slider for complexity */
.wedge-slider.slider-container::before {
    content: '';
    position: absolute;
    top: calc(100% - 18px); /* shift track down while keeping dots in place */
    left: 0;
    width: 100%;
    height: 32px;
    background: #e0e0e0;
    border-radius: 0;
    z-index: 0;
    display: block !important;
    visibility: visible !important;
    clip-path: polygon(0% 100%, 100% 100%, 100% 0%, 0% 60%);
}

/* Wedge slider track fill */
.wedge-slider #complexityTrack {
    top: calc(100% - 18px); /* align fill with lowered track */
    bottom: auto;
    height: 32px;
}

/* Normal kalkulator sliders (non-wedge) */
.page-kalkulator .slider-container:not(.wedge-slider)::before {
    content: '';
    position: absolute;
    top: calc(100% - 26px);
    left: 0;
    width: 100%;
    height: 16px;
    background: #e0e0e0;
    border-radius: 8px;
    z-index: 0;
    display: block !important;
    visibility: visible !important;
}

/* Odhad page: tighten spacing between slider label and description */
.slider-panel .slider-label {
    margin-bottom: 0.2rem; /* tighter than default 0.7rem */
}

.slider-panel .slider-label .label-text {
    font-size: 1.4rem; /* match subsection titles */
    font-weight: 300;
    display: block;
}

/* kalkulator3: slightly smaller slider headings inside its dedicated container */
.kalkulator1-section .slider-label .label-text {
    font-size: 1.2rem;
}

.slider-panel .slider-description {
    margin-bottom: 0; /* minimal gap above the slider track */
}

/* Add breathing room under the percent labels on the reusable constructions slider */
.reusable-constructions-slider .slider-description {
    margin-bottom: 0.6rem;
}

/* Firefox: push the Podiel slider down to clear labels */
@supports (-moz-appearance: none) {
    .reusable-constructions-slider {
        padding-top: 0.35rem;
    }
    .reusable-constructions-slider .slider {
        margin-top: 0.35rem;
    }

    /* Firefox: also nudge the five Faktor náročnosti sliders downward */
    .page-kalkulator .slider-group .slider-container {
        padding-top: 0.35rem;
    }
    .page-kalkulator .slider-group .slider-container .slider {
        margin-top: 0.35rem;
    }
    
    /* Push wedge slider (Súborná náročnosť) thumb down significantly in Firefox */
    .wedge-slider #complexitySlider::-moz-range-thumb {
        margin-top: 18px !important;
    }
    .wedge-slider .slider::-moz-range-thumb {
        margin-top: 18px !important;
    }
}

/* Odhad page: make all main labels match slider label font size */
.slider-panel .input-group label,
.slider-panel .typology-label,
.slider-panel .general-planner-label {
    font-size: 1rem; /* match .slider-label (inherits 1rem) */
}

/* Odhad page: increase free space above typology section and the complexity slider */
.odhad-container .typology-section {
    margin-top: 2.0rem; /* reduced from 4.8rem for smaller gap */
}

.odhad-container .slider-container {
    margin-top: 2.4rem; /* increased again for more space above the slider block */
}

/* Specific positioning for reusable slider descriptions */
.reusable-panel .desc-low {
    left: 1.0%;
    transform: translateX(-50%);
}

.reusable-panel .desc-10 {
    left: 11.11%;
    transform: translateX(-50%);
}

.reusable-panel .desc-20 {
    left: 22.22%;
    transform: translateX(-50%);
}

.reusable-panel .desc-30 {
    left: 33.33%;
    transform: translateX(-50%);
}

.reusable-panel .desc-40 {
    left: 44.44%;
    transform: translateX(-50%);
}

.reusable-panel .desc-50 {
    left: 55.56%;
    transform: translateX(-50%);
}

.reusable-panel .desc-60 {
    left: 66.67%;
    transform: translateX(-50%);
}

.reusable-panel .desc-70 {
    left: 77.78%;
    transform: translateX(-50%);
}

.reusable-panel .desc-80 {
    left: 88.89%;
    transform: translateX(-50%);
}

.reusable-panel .desc-exceptional {
    left: 97.60%;
    transform: translateX(-50%);
}

/* Responsive Design */
@media (max-width: 900px) {
    body {
        font-size: 13px !important;
    }
    
    /* Double side gutters for content containers on narrow screens */
    .page-index .container {
        padding-left: 2.0rem;
        padding-right: 2.0rem;
    }
    .container {
        padding: 0.7rem;
    }
    
    header h1 {
        font-size: 2rem;
    }
    
    .slider-panel,
    .output-panel {
        padding: 1.05rem;
    }
    
    .output-grid {
        grid-template-columns: 1fr;
    }
    
    /* Mobile-specific slider fixes for track visibility */
    .slider-track-fill {
        z-index: 2 !important;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
    
    .slider-container::before {
        z-index: 1 !important;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
    
    .reusable-panel .slider-track-fill {
        z-index: 2 !important;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
    
    .reusable-panel .slider-container::before {
        z-index: 1 !important;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
    
    /* Optimize final result for mobile */
    .final-result {
        flex-direction: column;
        padding: 1rem;
        text-align: left;
    }
    
    .result-container {
        align-items: flex-start;
        text-align: left;
        width: 100%;
    }
    
    .result-label {
        font-size: 1.1rem;
        white-space: normal;
        text-align: left;
    }
    
    .result-value {
        font-size: 1.8rem;
        margin-bottom: 1rem;
    }
    
    .result-remark {
        margin-left: 0;
        margin-top: 1rem;
        width: 100%;
        max-width: 100%;
        padding: 1rem;
    }
    
    .result-remark p {
        font-size: 1rem;
        line-height: 1.3;
    }
}

/* Extra small screens -> Unified Mobile Breakpoint */
@media (max-width: 900px) {
    .container {
        padding: 0.5rem;
    }
    
    .output-panel {
        padding: 0.8rem;
    }
    
    .final-result {
        padding: 0.8rem;
    }
    
    .result-label {
        font-size: 1rem;
    }
    
    .result-value {
        font-size: 1.6rem;
    }
    
    .result-remark {
        padding: 0.8rem;
    }
    
    .result-remark p {
        font-size: 0.9rem;
    }

    /* Standardy page: keep headings readable but shrink body text on mobile */
    body.page-standardy {
        font-size: 13px !important;
    }

    .page-standardy p,
    .page-standardy li {
        font-size: 13px !important;
        line-height: 1.5 !important;
    }

    .page-standardy h1,
    .page-standardy .main-title {
        font-size: 1.9rem !important;
    }

    .page-standardy h2 {
        font-size: 1.5rem !important;
    }
}

/* Match newsletter logo scaling across breakpoints */
/* Logo sizing for breakpoints is handled by the global header normalization block above.
    Per-breakpoint .logo-link/.logo-img overrides were removed to avoid conflicts. */

/* Animation for value changes */
.value-display,
.result-value {
    transition: all 0.3s ease;
}

.value-display.updating,
.result-value.updating {
    transform: scale(1.1);
    color: #ff6b6b;
}

/* Accessibility improvements */
.slider:focus {
    outline: none !important;
    border: none !important;
}

@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* kalkulator1.html specific styles */
.odhad-container {
    background: rgba(255,255,255,0.95);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    border-radius: 0;
    padding: 1.4rem 2.2rem;
    box-shadow: 0 20px 40px rgba(0,0,0,0.1);
    margin-bottom: 1.4rem;
    color: #444;
    line-height: 1.4;
}

.input-group {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px 30px;
    margin-bottom: 20px;
    align-items: center;
}

.input-group label {
    font-size: 1.15em;
    color: #444;
    font-weight: 400;
}

.input-group input, .input-group select {
    padding: 0.6rem;
    border: 1.5px solid var(--primary);
    border-radius: 0;
    font-size: 1rem;
    background: #fff;
    color: #444;
}

.input-group input:focus, .input-group select:focus {
    outline: none;
    border-color: var(--primary);
}

/* kalkulator1: transform the initial input pair into single-line underline fields */
.page-kalkulator .odhad-container .input-group {
    grid-template-columns: 1fr; /* stack label over input for each field */
    gap: 6px; /* tight spacing like the reference */
}
.page-kalkulator .odhad-container .input-group label {
    margin-top: 0.6rem; /* small breathing room between fields */
}
.page-kalkulator .odhad-container .input-group input[type="text"],
.page-kalkulator .odhad-container .input-group input[type="number"] {
    padding: 0.4rem 0; /* vertical padding only */
    border: none; /* remove box border */
    border-bottom: 1.5px solid var(--primary); /* underline in brand (checkbox) color */
    border-radius: 0;
    background: transparent;
}
.page-kalkulator .odhad-container .input-group input[type="text"]:focus,
.page-kalkulator .odhad-container .input-group input[type="number"]:focus {
    outline: none;
    border-bottom: 1.5px solid var(--primary);
    box-shadow: none;
}
/* Lighter placeholder styling for kalkulator underline inputs */
.page-kalkulator .odhad-container .input-group input[type="text"]::placeholder,
.page-kalkulator .odhad-container .input-group input[type="number"]::placeholder {
    color: rgba(0, 0, 0, 0.4);
    opacity: 1;
}
/* Extra spacing specifically before the total area label */
.page-kalkulator .odhad-container .input-group label[for="totalArea"] {
    margin-top: 1.0rem;
}
/* Extra spacing for kalkulator3 labels to match kalkulator1 spacing */
.page-kalkulator .odhad-container .input-group label[for="subProjectName_k1"],
.page-kalkulator .odhad-container .input-group label[for="builtArea_k1"],
.page-kalkulator .odhad-container .input-group label[for="unbuiltLandArea_k1"] {
    margin-top: 1.0rem;
}
/* Ensure native spinners are visible on number inputs */
.page-kalkulator .odhad-container .input-group input[type="number"] {
    -moz-appearance: number-input;
    appearance: auto; /* Firefox */
}

.complexity-value {
    background: var(--primary);
    color: white;
    padding: 0.3rem 0.8rem;
    border-radius: 4px;
    font-weight: 600;
    min-width: 40px;
    text-align: center;
}

/* Complexity slider styles removed - now using slider-group .slider-container .slider */

/* Ensure slider container has no background that could create lines */
.slider-container {
    background: transparent !important;
}

.slider-container::before,
.slider-container::after {
    display: none !important;
}

.radio-group {
    grid-column: 1 / -1;
    margin: 20px 0;
}

.radio-group > h2.main-title {
    margin-top: 4.2rem !important;
    margin-bottom: 0.5rem;
}

.radio-options {
    display: flex;
    gap: 50px;
    margin-top: 10px;
}

.radio-options label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1rem;
}

.radio-options input[type="radio"] {
    transform: scale(1.3);
    accent-color: var(--primary);
}

/* Checkbox group styling */
.checkbox-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 10px;
}

.checkbox-option {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1rem;
    cursor: pointer;
}

.checkbox-option input[type="checkbox"] {
    transform: scale(1.45);
    accent-color: var(--primary);
    cursor: pointer;
}

.checkbox-option span {
    cursor: pointer;
}

/* Checkbox label styling for single checkboxes */
.checkbox-label {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 1rem;
    cursor: pointer;
    margin-top: 10px;
    position: relative;
}

.checkbox-label input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    width: 0;
    height: 0;
}

.checkbox-label .custom-checkbox {
    width: 22px;
    height: 22px;
    border: 2px solid var(--primary);
    border-radius: 0;
    background: #fff;
    position: relative;
    cursor: pointer;
    transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
    box-shadow: 0 2px 8px rgba(69, 128, 95, 0.07);
    flex-shrink: 0;
}

.checkbox-label input[type="checkbox"]:checked + .custom-checkbox {
    background: var(--primary);
    border-color: var(--primary);
}

.checkbox-label input[type="checkbox"]:checked + .custom-checkbox::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 5px;
    height: 10px;
    border: solid white;
    border-width: 0 2px 2px 0;
    transform: translate(-50%, -60%) rotate(45deg);
}

.checkbox-label > span {
    cursor: pointer;
    line-height: 1.2;
}

/* Renovation scope row - matching firm size design */
.renovation-scope-row {
  display: block;
  margin-bottom: 0.5rem;
}

.renovation-scope-checkboxes {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Renovation scope checkboxes - larger and custom color */
.renovation-scope-checkboxes input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    width: 22px;
    height: 22px;
    border: 2px solid var(--primary);
    border-radius: 50%;
    background: #fff;
    outline: none;
    margin-right: 1.1rem;
    position: relative;
    cursor: pointer;
    vertical-align: middle;
    transition: border-color 0.2s, box-shadow 0.2s;
    box-shadow: 0 2px 8px rgba(69, 128, 95, 0.07);
}

.renovation-scope-checkboxes input[type="checkbox"]:checked {
  background: var(--primary);
  border-color: var(--primary);
}

.renovation-scope-checkbox-label {
  font-size: 1.08rem;
  color: #444;
  display: inline-block;
  vertical-align: middle;
  margin-left: 0.2rem;
}

.renovation-scope-checkbox-row {
  display: flex;
  align-items: center;
  margin-bottom: 0.7rem;
}

/* Special scope checkbox styling with custom checkboxes */
.special-scope-checkbox {
  display: flex;
  align-items: center;
  cursor: pointer;
  position: relative;
}

.special-scope-checkbox input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  width: 0;
  height: 0;
}

.special-scope-checkbox .custom-checkbox {
    width: 22px;
    height: 22px;
    border: 2px solid var(--primary);
  border-radius: 0;
  background: #fff;
  margin-right: 1.1rem;
  position: relative;
  cursor: pointer;
  transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
  box-shadow: 0 2px 8px rgba(69, 128, 95, 0.07);
  flex-shrink: 0;
}

.special-scope-checkbox input[type="checkbox"]:checked + .custom-checkbox {
  background: var(--primary);
  border-color: var(--primary);
}

.special-scope-checkbox input[type="checkbox"]:checked + .custom-checkbox::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 6px;
  height: 12px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transform: translate(-50%, -60%) rotate(45deg);
}

.calculate-button {
    grid-column: 1 / -1;
    background: var(--primary);
    color: white;
    border: none;
    padding: 1rem 2rem;
    font-size: 1.2em;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    margin: 20px 0;
    width: 100%;
}

.calculate-button:hover {
    background: #000;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(69, 128, 95, 0.3);
}

/* Increase spacing above the calculate button in kalkulator3 section */
.page-kalkulator .odhad-container .input-group .calculate-button {
    margin-top: 3.2rem;
    margin-bottom: 20px; /* keep bottom spacing consistent */
}

.disclaimer {
    grid-column: 1 / -1;
    margin-top: 30px;
    font-size: 0.8em;
    color: #666;
    line-height: 1.4;
}

.back-link-container {
    text-align: center;
    margin: 2rem 0;
}

/* Position back-link at bottom-right inside white container on zakladne-udaje */
.page-zakladne-udaje .back-link-container.back-link-bottom-right {
    display: flex;
    justify-content: flex-end;
    margin: 1rem 0 0 0;
    margin-top: auto; /* push back-link to the bottom when space available */
    padding-right: 0.75rem; /* add breathing room from the right edge */
}

/* Reduce white container height on zakladne-udaje */
.page-zakladne-udaje .content {
    /* Tighter vertical rhythm compared to default .content */
    margin: 0.75rem auto 2.25rem auto !important; /* reduce top/bottom margins around white card */
    padding: 0.5rem 0.25rem 1rem 0.25rem !important; /* reduce padding on mobile */
}

/* Also trim spacing of the inner narrow container */
.page-zakladne-udaje .content .content-narrow {
    padding-top: 0.25rem;    /* minimize top space above text */
    padding-bottom: 0.5rem;
    /* Override global .container min-height and flex which inflate height */
    min-height: 0 !important;
    display: block !important;
}

/* Add space above the page title */
.page-zakladne-udaje .page-title {
    margin-top: 1.5rem;
}

/* Reduce space under the last paragraph */
.page-zakladne-udaje .content-narrow p:last-of-type {
    margin-bottom: 0.75rem;
}

/* On desktop, let the white container fill the viewport and push back-link down */
@media (min-width: 901px) {
    .page-zakladne-udaje .main-content,
    .page-zakladne-udaje .main-content-index {
        margin: 0.75rem auto 1.5rem auto !important; /* trim space above and below the white card */
        padding: 0 !important;
    }
    .page-zakladne-udaje .content {
        display: flex;
        flex-direction: column;
        /* approx header + margins allowance so white card fills screen nicely */
        min-height: calc(100vh - 140px);
    }
    .page-zakladne-udaje .content .content-narrow {
        flex: 1 0 auto; /* occupy remaining space above back-link */
    }
}

/* Reduce excessive spacing around back-link on kalkulator pages */
.page-kalkulator .back-link-container {
    margin: 0.75rem 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0.75rem;
}

/* kalkulator3: place back-link/reset actions at the bottom-right of the workspace */
.page-kalkulator .back-link-container.back-link-bottom-right {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    gap: 0.75rem;
    align-items: center;
    width: 100%;
    margin-top: 1.25rem;
    margin-bottom: 0;
}

.page-kalkulator .back-link-container.back-link-bottom-right .reset-button {
    grid-row: 1;
    justify-self: center;
    width: 100%;
}

.page-kalkulator .back-link-container.back-link-bottom-right .back-link {
    grid-row: 2;
    justify-self: end;
}

/* Ensure perfect visual alignment of the two action buttons on kalkulator pages */
.page-kalkulator .back-link-container .back-link,
.page-kalkulator .back-link-container .reset-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

/* Use flex gap for spacing in kalkulator pages (avoid extra offset) */
.page-kalkulator .back-link-container .reset-button { margin-left: 0; }

@media (max-width: 900px) {
    .page-kalkulator .back-link-container {
        margin: 0.5rem 0;
        gap: 0.5rem;
    }

    .page-kalkulator .back-link-container.back-link-bottom-right {
        grid-template-columns: 1fr;
        gap: 0.5rem;
        margin-top: 1rem;
    }
}

/* Footer styles from 12_TEST_STANDARDY-FREE-NEWSLETTER-CLEAN */
.footer-spacer {
    height: 20rem;
}

/* Removed stray closing brace and misplaced property */
footer {
    background: none;
    color: #222;
    text-align: center;
    padding: 1rem;
    font-size: 0.9rem;
    margin-top: 4rem;
}

/* Trim footer gap specifically on kalkulator pages */
.page-kalkulator footer {
    margin-top: 1.5rem;
}

@media (max-width: 900px) {
    .page-kalkulator footer {
        margin-top: 0.75rem;
    }
}

.cc-icon {
    max-width: 1em;
    max-height: 1em;
    margin-left: .2em;
}

/* Typology section styles */
.typology-section {
    grid-column: 1 / -1;
    margin: 30px 0;
}

.typology-label {
    font-size: 1.15em;
    display: block;
    margin-bottom: 15px;
}

.typology-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px 40px;
    margin-top: 15px;
}

.typology-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.typology-row label {
    flex: 1;
    min-width: 120px;
}

.typology-row input {
    width: 80px;
    padding: 0.6rem; /* match .input-group input */
    border: 1.5px solid var(--primary);
    border-radius: 0;
    font-size: 1rem;
    background: #fff;
    color: #444;
}

.typology-row input:focus {
    outline: none;
    border-color: var(--primary);
}

/* Mobile wrapping improvements for typology grid */
@media (max-width: 800px) {
    .typology-grid {
        grid-template-columns: 1fr; /* single column on small screens */
        gap: 12px; /* tighter vertical spacing */
    }
    .typology-row {
        display: grid; /* keep elements on one row while allowing shrink/wrap */
        grid-template-columns: 1fr auto auto;
        align-items: center;
        column-gap: 12px;
        row-gap: 0;
        min-height: 44px; /* touch-friendly */
    }
    .typology-row label {
        grid-column: 1 / 2; /* stay in the same row */
        margin-bottom: 0;
    }
    .typology-row input {
        max-width: 120px; /* comfortable touch size */
        width: 100%;
    }
    .typology-row span {
        min-width: 28px; /* keep % visible but compact */
        text-align: left;
    }
}

.typology-row span {
    min-width: 20px;
}

/* Inline typology layout with underline inputs (2-column) */
.typology-grid-inline {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.2rem 2rem;
    margin-top: 1rem;
}

.typology-inline-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.2rem;
}

.typology-label-inline {
    flex: 0 1 auto;
    font-size: 1rem;
    color: #444;
    font-weight: 400;
    white-space: nowrap;
}

.typology-input-group {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex: 0 1 auto;
}

.typology-input-group input[type="number"] {
    border: none;
    border-bottom: 1.5px solid var(--primary);
    background: transparent;
    padding: 0.3rem 0.4rem 0.3rem 0;
    width: 9rem;
    font-size: 1rem;
    color: #444;
    text-align: right;
}

.typology-input-group input[type="number"]::placeholder {
    color: rgba(0, 0, 0, 0.4);
    opacity: 1;
}

.typology-input-group input[type="number"]:focus {
    outline: none;
    border-bottom-color: var(--primary);
}

.typology-unit {
    font-size: 1rem;
    color: #444;
    min-width: 1.2rem;
}

@media (max-width: 900px) {
    .typology-grid-inline {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    
    .typology-inline-row {
        gap: 1rem;
    }
}

/* Radio button typology selection */
.typology-radio-group {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2px 30px;
    margin-top: 15px;
}

.typology-radio-option {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    padding: 8px 12px;
    border-radius: 4px;
    transition: background-color 0.2s;
    position: relative;
}

.typology-radio-option:hover {
    background-color: rgba(0, 0, 0, 0.05);
}

.typology-radio-option input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    width: 0;
    height: 0;
}

.typology-radio-option .custom-checkbox {
    width: 22px;
    height: 22px;
    border: 2px solid var(--primary);
    border-radius: 0;
    background: #fff;
    position: relative;
    cursor: pointer;
    transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
    box-shadow: 0 2px 8px rgba(69, 128, 95, 0.07);
    flex-shrink: 0;
}

.typology-radio-option input[type="checkbox"]:checked + .custom-checkbox {
    background: var(--primary);
    border-color: var(--primary);
}

.typology-radio-option input[type="checkbox"]:checked + .custom-checkbox::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 5px;
    height: 9px;
    border: solid white;
    border-width: 0 2px 2px 0;
    transform: translate(-50%, -60%) rotate(45deg);
}

.typology-radio-option > span {
    font-size: 1em;
    -webkit-user-select: none;
    user-select: none;
}

@media (max-width: 900px) {
    .typology-radio-group {
        grid-template-columns: 1fr;
        gap: 4px;
    }
    
    .typology-radio-option {
        padding: 10px;
    }
}

.general-planner-label {
    font-size: 1.15em;
    display: block;
    margin-top: 4.2rem;
    margin-bottom: 10px;
}

/* Result table styles */
.result-notice {
    margin: 14px 0 10px 0;
    padding: 1rem 1.2rem;
    color: #c00000;
    background: #fff;
    text-align: left;
    width: 100%;
    box-sizing: border-box;
}

.result-notice-title {
    color: inherit;
    font-weight: normal;
}

.result-notice-text {
    color: inherit;
    font-size: 0.8em;
    font-weight: normal;
}

.result-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    text-align: left;
    margin: 40px 0 0 0;
    color: black;
    border: 1px solid #000;
    font-size: 0.8em;
}

.result-table col:nth-child(1) { width: 14.3%; }
.result-table col:nth-child(2) { width: 33.7%; }
.result-table col:nth-child(3) { width: 12%; }
.result-table col:nth-child(4) { width: 20%; }
.result-table col:nth-child(5) { width: 20%; }

.result-table th {
    border: 1px solid #000;
    padding: 8px;
    height: 28px;
}

.result-table td {
    border: 1px solid #000;
    padding: 4px 8px;
    height: 24px;
    vertical-align: middle;
}

.result-table tr:last-child td {
    padding: 4px 8px;
    height: 24px;
    vertical-align: middle;
}

/* Center Spolu row value in both screen and print */
.result-table tr:last-child .flex-right {
    justify-content: center !important;
}

.result-table .header-row {
    height: 24px;
}

.result-table .header-cell {
    text-align: left;
}

.result-table .center-cell {
    text-align: center;
    vertical-align: middle;
}

/* Additional table cell styles */
.result-table .text-right {
    text-align: right;
    vertical-align: middle;
}

/* Also apply to print-table */
.print-table .text-right {
    text-align: right !important;
    vertical-align: middle !important;
}

/* Print table header cells should be left-aligned */
.print-table .header-row .center-cell {
    text-align: left !important;
}

/* Column 3 (percentages) should be right-aligned */
.print-table td:nth-child(3) {
    text-align: right !important;
}

.result-table .flex-center {
    display: flex;
    justify-content: center;
    align-items: center;
}

.result-table .flex-right {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    height: 24px;
}

/* Also apply to print-table */
.print-table .flex-right {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    min-height: 24px !important;
    height: 100% !important;
}

.print-table .flex-center {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 24px !important;
    height: 100% !important;
}

.result-table .dot-indicator {
    display: inline-block;
    width: 6px;
    height: 6px;
    background-color: black;
    border-radius: 50%;
}

.result-table .percent-input {
    width: 60px;
    text-align: right;
    height: 18px;
    padding: 1px 4px;
    border: none;
}

/* Also apply to print-table */
.print-table .percent-input {
    width: 60px !important;
    text-align: right !important;
    height: 18px !important;
    padding: 1px 4px !important;
    border: none !important;
}

.result-table .eur-input {
    text-align: right;
    width: 95px;
    height: 18px;
    padding: 1px 4px;
    border: none;
}

/* Also apply to print-table */
.print-table .eur-input {
    text-align: right !important;
    width: 95px !important;
    height: 18px !important;
    padding: 1px 4px !important;
    border: none !important;
}

.result-table .eur-span {
    margin-left: 5px;
    white-space: nowrap;
    font-size: 1em;
}

/* Also apply to print-table */
.print-table .eur-span {
    margin-left: 5px !important;
    white-space: nowrap !important;
    font-size: 1em !important;
}

.result-table .percent-span {
    margin-left: 5px;
}

/* Also apply to print-table */
.print-table .percent-span {
    margin-left: 5px !important;
}

/* Mobile: wrap units to new line by letting flex containers wrap */
@media (max-width: 800px) {
    .result-table .flex-right,
    .result-table .flex-center {
        flex-wrap: wrap;
        justify-content: flex-end;
    }

    .result-table .eur-span,
    .result-table .percent-span {
        display: block;
        width: 100%;
        margin-left: 0;
        margin-top: 2px;
        text-align: right;
    }

    .result-table .eur-input,
    .result-table .percent-input {
        width: 100%;
        font-size: inherit;
    }

    /* Compact typography for result tables on small screens */
    .result-table {
        font-size: 0.7em;
    }
    .result-table th,
    .result-table td {
        padding: 3px 6px;
    }
    .result-table .eur-span,
    .result-table .percent-span {
        font-size: inherit;
    }
    .result-table input,
    .result-table span {
        font-size: inherit;
    }

    /* Let columns resize freely on small screens so totals are not clipped */
    .result-table col { width: auto !important; }
    .result-table td:nth-child(3),
    .result-table th:nth-child(3) {
        padding-right: 4px;
    }

    /* Allow table to reflow on small screens so percent totals don't get clipped */
    .result-table {
        table-layout: auto;
        word-wrap: break-word;
    }
    .result-table td,
    .result-table th {
        word-break: break-word;
        overflow: visible;
    }

    /* Ensure consistent row height for rows without inputs (FS 0 (A), FS 1 (A), FS 7 (A), FS 8 (A), FS 0+1 (GP), FS 2+3+4 (GP), FS 7+8 (GP)) */
    .result-table .flex-center {
        min-height: 3em;
    }
    .result-table td:has(.dot-indicator) {
        min-height: 3em;
    }
}

.result-table .bold {
    font-weight: bold;
}

.print-table .bold {
    font-weight: 600;
}

/* Handle any remaining inline styles with generic table rules */
.result-table tr {
    height: 24px;
}

/* Override inline styles that might still exist */
.result-table td[style*="text-align: left"] {
    text-align: left !important;
}

.result-table td[style*="text-align: right"] {
    text-align: right !important;
}

.result-table td[style*="text-align: center"] {
    text-align: center !important;
}

/* Missing result display styles */
.result-display {
    grid-column: 1 / -1;
    background: transparent; /* remove pinkish background */
    padding: 0; /* let table stretch to full content width */
    margin-top: 20px;
    border-left: none; /* removed left colored line */
    display: none;
}

.results-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 0;
}

.results-table td {
    border: 1px solid #ddd;
    padding: 10px;
    height: 40px;
}

.table-separator {
    height: 20px;
}

.result-value {
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--primary);
    margin: 10px 0;
}

.factors-display {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #ddd;
    font-size: 0.9em;
    color: #666;
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
    gap: 10px;
    text-align: center;
}

/* Print / PDF button area */
.print-actions {
    margin-top: 16px;
    display: block;
}

.print-pdf-button {
    margin-top: 20px;
    padding: 1rem 2rem;
    font-size: 16px;
    background-color: var(--primary); /* unified brand */
    color: white;
    border: none;
    border-radius: 0;
    cursor: pointer;
    width: 100%;
}

.print-pdf-button:hover {
    background-color: #000000;
}

/* Odhad page: keep parent slider-panel styling (shadow, blur) and make inner container transparent */

.slider-panel:has(.odhad-container) .odhad-container {
    background: transparent !important; /* let parent white show through */
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
    border: none !important;
    /* Let outer .slider-panel control spacing fully */
    padding: 0 !important;
}

/* Index page: remove white backgrounds and shadows from containers */
.page-index .slider-panel {
    background: transparent !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
    border: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-top: 56px !important; /* slight drop to lower content a bit under the logo */
}

/* Index: top-align content instead of vertical centering */
.page-index .container {
    justify-content: flex-start !important;
}

/* Default layout for kalkulator choices: place buttons horizontally */
.choices-container {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: center;
    gap: 12px;
    margin: 3rem 0;
    flex-wrap: wrap; /* wrap on small screens */
    max-width: calc(3 * 275px + 24px);
    margin-left: auto;
    margin-right: auto;
}

/* Choices: drop to 2 columns and then 1 on narrow screens */
@media (max-width: 900px) {
    .choices-container { max-width: 275px; }
}

.page-index .choices-container {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    justify-content: center;
    gap: 12px;
    margin: 3rem 0;
    max-width: calc(3 * 275px + 24px);
    margin-left: auto;
    margin-right: auto;
}

.choice-button {
        width: 40px;
        height: 40px;
        min-width: 40px;
        min-height: 40px;
        max-width: 40px;
        max-height: 40px;
        background: #000;
        color: #fff;
        border: none;
        border-radius: 8px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 20px;
        padding: 0;
        margin: 0;
        box-shadow: 0 2px 4px rgba(0,0,0,0.1);
        transition: background 0.2s;
        flex-shrink: 0;
        text-align: left;
        /* Match base shadow strength with index */
        box-shadow: 0 10px 20px rgba(0,0,0,0.12);
    }

.choice-button:hover,
.choice-button:focus,
.choice-button:active {
    background: #000 !important;
    color: #fff !important;
    border-color: #000 !important;
    transform: translateY(-2px);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.3);
}

.choice-title {
    font-size: 1.5em; /* match standardy base */
    font-weight: bold;
    margin: 0 0 0.4rem 0;
    display: block;
    text-align: left;
    padding: 0; /* padding is on the container */
}

.choice-description {
    font-size: 1.0rem;
    font-weight: 400;
    line-height: 1.3;
    opacity: 0.9;
    text-align: left;
    margin: 0 0 0.7rem 0;
    width: 100%;
    margin-top: auto;
}

.choice-button:hover .choice-description {
    opacity: 1;
}

/* Kalkulator page: keep description at the bottom of each 275x275 card */
.choices-container .choice-description {
    margin-top: auto;
    margin-bottom: 1.2rem;
}

/* Keep cards stacked vertically on all widths */
/* (No desktop grid; preserve column layout and natural heights) */

/* Index: align the title/subtitle header to the same width as the choice cards */
.page-index .slider-panel > header {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
}

/* Narrow screens: left-align logo and title, keep positioning stable to avoid jumps */
@media (max-width: 900px) {
    /* Slightly taller min-height on small screens to account for wrapping */
    /* Keep fixed 275x275 size on mobile as requested */
    .choice-button { width: 275px; height: 275px; }
    .page-index .logo-header {
        position: sticky;
        top: 0;
        left: auto;
        width: 100%;
        text-align: left;
        padding: 0; /* spacing comes from .logo-link margin */
    }
    .page-index .slider-panel {
        margin-top: 16px !important;
    }
    /* Left-align the title block to match logo on small screens */
    .page-index .slider-panel > header {
            max-width: none;
            margin: 0; /* rely on .container padding for alignment */
            padding-left: 0;
            padding-right: 0;
    }
    /* Keep centered card grid; width managed by max-width breakpoints */
    .page-index .choices-container { margin-left: auto; margin-right: auto; }
}

/* Footer (moved from inline) */
.page-index footer {
    width: 100%;
    margin-top: 2rem;
}

.page-index .licence-section {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}

.page-index .licence-left {
    text-align: center;
    margin: 0 auto;
}

.page-index .cc-icon {
    height: 1em;
    vertical-align: middle;
    margin-left: 0.2em;
}

/* Removed: Index theme (Alabaster & Terra) overrides */

/* Print styles: keep result table and hide non-essential UI */
@media print {
    body { background: white !important; margin: 0 !important; padding: 0 !important; }
    
    /* Hide ALL body children */
    body > * {
        display: none !important;
        position: absolute !important;
        left: -9999px !important;
        visibility: hidden !important;
    }
    
    /* Show ONLY the print view and its parent chain */
    #printView, #printView_k1 { 
        display: block !important; 
        position: static !important;
        visibility: visible !important;
        left: auto !important;
        width: 100% !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        max-width: none !important;
    }
    
    /* Make parent containers visible but minimal */
    #printView:not(:empty),
    #printView_k1:not(:empty) {
        display: block !important;
        position: static !important;
    }
    
    /* Show parent chain for print view - CRITICAL: Override max-width constraints */
    .container:has(#printView_k1),
    .slider-panel:has(#printView_k1),
    .container:has(#printView),
    .slider-panel:has(#printView) {
        display: block !important;
        position: static !important;
        visibility: visible !important;
        left: auto !important;
        background: none !important;
        border: none !important;
        box-shadow: none !important;
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        max-width: none !important;
    }
    
    /* Force full width on containers in print regardless of page class */
    .page-kalkulator .container,
    .container,
    .slider-panel {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    
    /* Hide all children of containers except the print view's direct parent */
    .container > *:not(.slider-panel),
    .slider-panel > *:not(#printView):not(#printView_k1) {
        display: none !important;
        position: absolute !important;
        left: -9999px !important;
        visibility: hidden !important;
    }
}

/* Print view base styles (screen-hidden by default) */
.print-view { display: none; }
.pv-wrap { padding: 24px 28px; color: #000; font-family: Arial, sans-serif; width: 100%; max-width: 100%; box-sizing: border-box; }
.pv-title { font-size: 20px; margin-bottom: 12px; font-weight: 300; }
.pv-sub { font-size: 16px; margin: 18px 0 8px; font-weight: 300; }
.print-logo { display: none; }
.print-logo img { height: 12px; width: auto; display: block; }
.pv-grid { width: 100%; border-top: 1px solid #ddd; }
.pv-row { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid #eee; }
.pv-label { color: #000; }
.pv-val { color: #000; font-weight: 600; }
.pv-total .pv-label { font-weight: 300; }
.pv-notes { margin-top: 14px; font-size: 12px; color: #000; border-top: 1px solid #000; padding-top: 14px; }
.pv-table-wrap { margin-top: -30px; width: 100%; max-width: 100%; }
.pv-table-wrap table.result-table { font-size: 12px; color: #000; border: none; border-top: 1px solid #000; border-bottom: 1px solid #000; width: 100%; max-width: 100%; }
.pv-table-wrap table.result-table th, 
.pv-table-wrap table.result-table td { border: none; border-bottom: 1px solid #000; }
.pv-table-wrap table.print-table { font-size: 12px !important; color: #000 !important; border: none !important; border-top: 0.5px solid #999 !important; border-bottom: 0.5px solid #999 !important; width: 100% !important; max-width: 100% !important; background-color: #f9f9f9 !important; }
.pv-table-wrap table.print-table th,
.pv-table-wrap table.print-table td { border: none !important; border-bottom: 0.5px solid #999 !important; }

/* Two-column header block similar to the reference PDF */
.pv-2col {
    display: grid;
    grid-template-columns: 1fr; /* single column for dense list */
    gap: 2px 0;
    margin-bottom: 8px;
    width: 100%;
}
.pv-2col .pv-row { border-bottom: none; padding: 1px 0; justify-content: flex-start; width: 100%; }
.pv-2col .pv-row-full { grid-column: 1 / -1; }
.pv-2col .pv-label, .pv-2col .pv-val { font-size: 12px; }
.pv-2col .pv-label { flex: 0 0 300px; } /* fixed label column width for alignment - increased for value offset */
.pv-2col .pv-val { flex: 1 1 auto; text-align: left; } /* values left-aligned like reference */

@media print {
    /* Hide dot indicators in print table */
    .pv-table-wrap .dot-indicator { display: none !important; }
    /* Remove top border from result and print tables */
    .pv-table-wrap table.result-table,
    .pv-table-wrap table.print-table {
        border-top: none !important;
    }
    /* Remove top border - first row of table */
    .pv-table-wrap table.result-table tr:first-child th,
    .pv-table-wrap table.print-table tr:first-child td {
        border-top: none !important;
        border-bottom: none !important;
    }
    /* Remove border line above all Rozdelenie section headers - remove bottom border from preceding rows */
    .pv-table-wrap table tr:has(+ tr th[colspan="5"]) td,
    .pv-table-wrap table tr:has(+ tr th[colspan="5"]) th {
        border-bottom: none !important;
    }
    #printView,
    #printView_k1,
    .slider-panel,
    .container {
        transform: none !important;
        filter: none !important;
        -webkit-backdrop-filter: none !important;
        backdrop-filter: none !important;
    }
    .print-logo {
        display: block !important;
        position: fixed !important;
        right: 10mm !important;
        bottom: 0mm !important;
        z-index: 9999 !important;
        pointer-events: none !important;
    }
    /* Specific font size for project name labels and values */
    .pv-label-project-name,
    .pv-label-subproject-name,
    .pv-label-project-name + .pv-val,
    .pv-label-subproject-name + .pv-val {
        font-size: 16px !important;
    }
    /* Remove vertical borders from hourly rates table */
    .pv-rates-table,
    .hourly-rates-table {
        border: none !important;
        border-top: 0.2px solid #999 !important;
        border-bottom: 0.2px solid #999 !important;
    }
    .pv-rates-table td,
    .pv-rates-table th,
    .hourly-rates-table td,
    .hourly-rates-table th {
        border: none !important;
        border-bottom: 0.2px solid #999 !important;
    }
    /* Use fixed layout with specific widths to force header wrapping */
    .pv-table-wrap table.result-table { table-layout: fixed !important; border: none !important; border-bottom: 0.2px solid #999 !important; }
    .pv-table-wrap table.print-table { table-layout: fixed !important; }
    /* Tighten table spacing in print and keep row heights uniform */
    .pv-table-wrap table.result-table td,
    .pv-table-wrap table.result-table th,
    .pv-table-wrap table.print-table td,
    .pv-table-wrap table.print-table th {
        padding: 6px 4px !important;
        height: auto !important;
        line-height: 1.3 !important;
        vertical-align: middle !important;
        border: none !important;
        border-bottom: 0.2px solid #999 !important;
        color: #000 !important;
    }
    /* Match spacing after EUR in total basic services cell */
    .pv-table-wrap table.print-table td.total-basic-services-eur {
        padding-right: 8px !important;
    }
    /* CRITICAL: Force right-alignment for numeric columns BEFORE other rules */
    table td:nth-child(3),
    table td:nth-child(4),
    table td:nth-child(5) {
        text-align: right !important;
    }
    /* Center only the Spolu total cell in print */
    #totalCellSum,
    #totalCellSum_k1 {
        text-align: center !important;
    }
    /* Move Spolu value left by 60px in print only */
    #totalCellSum .flex-right,
    #totalCellSum_k1 .flex-right {
        position: relative !important;
        left: -60px !important;
    }
    /* Print table clone has no IDs; target last row Spolu cell */
    .pv-table-wrap table.print-table tr:last-child td[colspan="2"] .flex-right {
        position: relative !important;
        left: -60px !important;
    }
    /* Ensure numeric value cells align to middle like on screen */
    .pv-table-wrap table.result-table td.text-right,
    .pv-table-wrap table.print-table td.print-cell-right {
        vertical-align: middle !important;
    }
    /* Force header cells to wrap with smaller font */
    .pv-table-wrap table.result-table .header-row td,
    .pv-table-wrap table.print-table .print-header-row td {
        white-space: normal !important;
        word-break: break-word !important;
        font-size: 11px !important;
        padding: 5px 3px !important;
        min-height: 45px !important;
        line-height: 1.3 !important;
    }
    /* Adjust print column widths to force wrapping of long headers */
    .pv-table-wrap table.result-table col:nth-child(1) { width: 17% !important; }
    .pv-table-wrap table.result-table col:nth-child(2) { width: 23% !important; }
    .pv-table-wrap table.result-table col:nth-child(3) { width: 15% !important; }
    .pv-table-wrap table.result-table col:nth-child(4) { width: 22.5% !important; }
    .pv-table-wrap table.result-table col:nth-child(5) { width: 22.5% !important; }
    .pv-table-wrap table.print-table-5col col:nth-child(1) { width: 17% !important; }
    .pv-table-wrap table.print-table-5col col:nth-child(2) { width: 26% !important; }
    .pv-table-wrap table.print-table-5col col:nth-child(3) { width: 15% !important; }
    .pv-table-wrap table.print-table-5col col:nth-child(4) { width: 21% !important; }
    .pv-table-wrap table.print-table-5col col:nth-child(5) { width: 21% !important; }
    /* Ensure empty flex containers have consistent height */
    .pv-table-wrap .flex-right,
    .pv-table-wrap .flex-center {
        align-items: center !important;
        min-height: 20px !important;
    }
    /* Prevent numeric data cells from wrapping; allow headers to wrap to keep layout stable */
    .pv-table-wrap table.result-table tr:not(.header-row) td.center-cell,
    .pv-table-wrap table.result-table td.text-right,
    .pv-table-wrap table.print-table tr:not(.print-header-row) td.print-cell-center,
    .pv-table-wrap table.print-table td.print-cell-right { white-space: nowrap !important; }
    /* Ensure print-table numeric cells using text-right never wrap (keeps totals aligned) */
    .pv-table-wrap table.print-table td.text-right { white-space: nowrap !important; }
    /* Ensure full width in print */
    .pv-wrap, .pv-table-wrap, .pv-table-wrap table.result-table, .pv-table-wrap table.print-table, .pv-2col {
        width: 100% !important;
        max-width: 100% !important;
    }
    /* Prevent value wrapping in print - keep values inline */
    .result-table .flex-right,
    .result-table .flex-center {
        flex-wrap: nowrap !important;
    }
    .result-table .eur-span,
    .result-table .percent-span {
        display: inline !important;
        width: auto !important;
        margin-left: 5px !important;
    }
    /* Right-align all numeric cells in print tables including summary rows */
    .pv-table-wrap table.result-table td:nth-child(3),
    .pv-table-wrap table.result-table td:nth-child(4),
    .pv-table-wrap table.result-table td:nth-child(5),
    .pv-table-wrap table.print-table td:nth-child(3),
    .pv-table-wrap table.print-table td:nth-child(4),
    .pv-table-wrap table.print-table td:nth-child(5),
    table.result-table td:nth-child(3),
    table.result-table td:nth-child(4),
    table.result-table td:nth-child(5),
    table.print-table td:nth-child(3),
    table.print-table td:nth-child(4),
    table.print-table td:nth-child(5) {
        text-align: right !important;
        padding-right: 8px !important;
    }
    /* Force right-alignment of flex containers in numeric columns */
    .pv-table-wrap table.result-table td:nth-child(3) > *,
    .pv-table-wrap table.result-table td:nth-child(4) > *,
    .pv-table-wrap table.result-table td:nth-child(5) > *,
    .pv-table-wrap table.print-table td:nth-child(3) > *,
    .pv-table-wrap table.print-table td:nth-child(4) > *,
    .pv-table-wrap table.print-table td:nth-child(5) > *,
    table.result-table td:nth-child(3) > *,
    table.result-table td:nth-child(4) > *,
    table.result-table td:nth-child(5) > *,
    table.print-table td:nth-child(3) > *,
    table.print-table td:nth-child(4) > *,
    table.print-table td:nth-child(5) > * {
        text-align: right !important;
        justify-content: flex-end !important;
    }
    /* Ensure flex containers in numeric cells are also right-aligned */
    .pv-table-wrap table.result-table td:nth-child(3) .flex-right,
    .pv-table-wrap table.result-table td:nth-child(4) .flex-right,
    .pv-table-wrap table.result-table td:nth-child(5) .flex-right,
    .pv-table-wrap table.result-table td:nth-child(3) .flex-center,
    .pv-table-wrap table.result-table td:nth-child(4) .flex-center,
    .pv-table-wrap table.result-table td:nth-child(5) .flex-center,
    .pv-table-wrap table.print-table td:nth-child(3) .flex-right,
    .pv-table-wrap table.print-table td:nth-child(4) .flex-right,
    .pv-table-wrap table.print-table td:nth-child(5) .flex-right,
    .pv-table-wrap table.print-table td:nth-child(3) .flex-center,
    .pv-table-wrap table.print-table td:nth-child(4) .flex-center,
    .pv-table-wrap table.print-table td:nth-child(5) .flex-center {
        justify-content: flex-end !important;
    }
    /* Header row cells: left-align the blue description headers */
    .pv-table-wrap table.print-table .header-row td.center-cell,
    .pv-table-wrap table.result-table .header-row td.center-cell {
        text-align: left !important;
    }
    /* Column 3 percentage cells: right-align */
    .pv-table-wrap table.print-table td:nth-child(3),
    .pv-table-wrap table.result-table td:nth-child(3) {
        text-align: right !important;
    }
    .pv-table-wrap table.print-table td:nth-child(3) .flex-right,
    .pv-table-wrap table.result-table td:nth-child(3) .flex-right {
        justify-content: flex-end !important;
    }
    /* Hourly rates table styling */
    .pv-rates {
        margin-top: 14px;
    }
    .pv-rates .pv-sub {
        font-size: 14px;
        margin-bottom: 8px;
    }
    .pv-rates-table {
        width: 100%;
        border-collapse: collapse;
        font-size: 12px;
        color: #000;
        border: none !important;
        border-bottom: 0.5px solid #999 !important;
    }
    .pv-rates-table th,
    .pv-rates-table td {
        border: none !important;
        border-bottom: 0.5px solid #999 !important;
        padding: 6px 8px;
    }
    .pv-rates-table td:first-child {
        text-align: left;
    }
    .pv-rates-table td:last-child {
        text-align: right;
        white-space: nowrap;
    }
    .pv-rates-table .pv-rates-total td:first-child {
        font-weight: 600;
    }
}

/* ===== PDF PRINT LAYOUT STYLES ===== */
/* Separate styling for PDF print tables and lines to distinguish from result tables */

/* PDF Print Table - distinct from result-table */
.print-table {
    width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    text-align: left !important;
    color: #000 !important;
    border: 0.5px solid #999 !important;
    font-size: 0.85em !important;
    line-height: 1.4 !important;
    background-color: #f9f9f9 !important;
}

.print-table th {
    border: 0.5px solid #999 !important;
    padding: 10px 8px !important;
    height: auto !important;
    background-color: #e8e8e8 !important;
    font-weight: 600 !important;
    text-align: left !important;
}

.print-table td {
    border: 0.5px solid #999 !important;
    padding: 8px 8px !important;
    height: auto !important;
    vertical-align: middle !important;
}

/* Print table header row styling */
.print-table .print-header-row {
    background-color: #d9d9d9 !important;
    font-weight: 600 !important;
}

.print-table .print-header-row td {
    padding: 10px 8px !important;
    text-align: center !important;
}

/* Print table cell alignment options */
.print-table .print-cell-left { text-align: left !important; }
.print-table .print-cell-center { text-align: center !important; vertical-align: middle !important; }
.print-table .print-cell-right { text-align: right !important; vertical-align: middle !important; }

/* Right-align numeric columns (3, 4, 5) in print tables */
.print-table td:nth-child(3),
.print-table td:nth-child(4),
.print-table td:nth-child(5) {
    text-align: right !important;
}

/* Ensure flex containers in numeric cells are right-aligned */
.print-table td:nth-child(3) .flex-right,
.print-table td:nth-child(4) .flex-right,
.print-table td:nth-child(5) .flex-right,
.print-table td:nth-child(3) .flex-center,
.print-table td:nth-child(4) .flex-center,
.print-table td:nth-child(5) .flex-center {
    justify-content: flex-end !important;
}

/* Ensure total/summary rows also have right-aligned numeric cells */
.print-table .print-row-total td:nth-child(3),
.print-table .print-row-total td:nth-child(4),
.print-table .print-row-total td:nth-child(5),
.print-table tr:has(> td:nth-child(2):contains("Hodnota")) td:nth-child(3),
.print-table tr:has(> td:nth-child(2):contains("Hodnota")) td:nth-child(4),
.print-table tr:has(> td:nth-child(2):contains("Hodnota")) td:nth-child(5),
.print-table tr:has(> td:nth-child(2):contains("Celková")) td:nth-child(3),
.print-table tr:has(> td:nth-child(2):contains("Celková")) td:nth-child(4),
.print-table tr:has(> td:nth-child(2):contains("Celková")) td:nth-child(5) {
    text-align: right !important;
}

/* Print table emphasized/total rows */
.print-table .print-row-total {
    font-weight: 600 !important;
    background-color: #e8e8e8 !important;
    border-top: 0.5px solid #999 !important;
}

.print-table .print-row-section {
    background-color: #f0f0f0 !important;
    font-weight: 500 !important;
}

/* PDF Print Lines - separator/divider lines distinct from table borders */
.print-line {
    height: 1px;
    background-color: #000;
    margin: 12px 0;
    width: 100%;
}

.print-line-light {
    height: 1px;
    background-color: #999;
    margin: 8px 0;
    width: 100%;
}

.print-line-double {
    height: 3px;
    background: linear-gradient(to bottom, #666 0%, #666 33%, transparent 33%, transparent 66%, #666 66%, #666 100%);
    margin: 12px 0;
    width: 100%;
}

/* Print layout container - for organizing PDF print content */
.print-layout-container {
    page-break-inside: avoid;
    margin-bottom: 20px;
    color: #000;
}

.print-layout-section {
    page-break-inside: avoid;
    margin-bottom: 16px;
    color: #000;
}

.print-layout-title {
    font-size: 1.1em;
    font-weight: 600;
    margin-bottom: 8px;
    padding-bottom: 4px;
    border-bottom: 2px solid #333;
    color: #000;
}

.print-layout-subtitle {
    font-size: 0.95em;
    font-weight: 500;
    margin: 10px 0 6px 0;
    color: #000;
}

/* Print table column width specifications (can be customized per table) */
.print-table-3col col:nth-child(1) { width: 30%; }
.print-table-3col col:nth-child(2) { width: 35%; }
.print-table-3col col:nth-child(3) { width: 35%; }

.print-table-4col col:nth-child(1) { width: 25%; }
.print-table-4col col:nth-child(2) { width: 25%; }
.print-table-4col col:nth-child(3) { width: 25%; }
.print-table-4col col:nth-child(4) { width: 25%; }

.print-table-5col col:nth-child(1) { width: 17%; }
.print-table-5col col:nth-child(2) { width: 26%; }
.print-table-5col col:nth-child(3) { width: 15%; }
.print-table-5col col:nth-child(4) { width: 21%; }
.print-table-5col col:nth-child(5) { width: 21%; }

/* Print view media query overrides for PDF table styling */
@media print {
    .print-table {
        width: 100% !important;
        max-width: 100% !important;
        page-break-inside: avoid;
    }
    
    .print-table th,
    .print-table td {
        page-break-inside: avoid;
        overflow: visible;
    }
    
    .print-line,
    .print-line-light,
    .print-line-double {
        page-break-inside: avoid;
        display: block !important;
        visibility: visible !important;
    }
    
    .print-line {
        background-color: #000 !important;
        height: 1px !important;
    }
    
    .print-layout-container,
    .print-layout-section {
        page-break-inside: avoid;
    }
}

/* Old header-menu styles removed - now using hamburger button only */

.page-index-minimal .landing-panel { background: none; box-shadow: none; padding: 0; }
.landing-panel {
    min-height: 0;
    display: flex;
    flex-direction: row;         /* place squares horizontally */
    align-items: center;         /* vertical align */
    justify-content: center;     /* center the row */
    align-self: center;          /* center this panel when parent is flex (e.g., Standardy) */
    gap: var(--tile-gap);        /* exact pixel gap to prevent rounding wrap */
    flex-wrap: wrap;             /* wrap on small screens */
    /* Constrain to 3 squares per row on wide screens */
    max-width: var(--tiles-w3);
    margin-left: auto;
    margin-right: auto;
}

/* Embedded pages: keep landing grids at the same widths as top-level sections */
body.embedded .landing-panel {
    max-width: var(--tiles-w3);
    margin-left: auto;
    margin-right: auto;
}
@media (max-width: 900px) { body.embedded .landing-panel { max-width: var(--tiles-w1); } }
.landing-field { margin: 0; padding: 0; }
.landing-link {
    --tile-bg: var(--primary);
    display: flex;
    width: 275px;
    height: 275px;
    align-items: flex-start;      /* align to top */
    justify-content: flex-start;  /* align to left */
    text-align: left;
    padding: 10px 10px 0 10px;   /* match standardy button padding */
    text-decoration: none;
    font-weight: bold;            /* match standardy */
    font-size: 1.5em;             /* match standardy button title size */
    /* use default line-height like standardy */
    color: #fff;
    background: var(--tile-bg);   /* default color */
    border: 2px solid var(--tile-bg);   /* match border to background */
    border-radius: 0px;
    margin: 0;                    /* match standardy */
    box-sizing: border-box;       /* match standardy */
    box-shadow: none;
    transition: background 0.2s, color 0.2s, border-color 0.2s, transform 0.2s, box-shadow 0.2s;
}
.landing-field:nth-child(1) .landing-link { background: var(--primary); border-color: var(--primary); }
.landing-field:nth-child(2) .landing-link { background: var(--primary); border-color: var(--primary); }
.landing-panel .landing-field .landing-link.landing-link-faq {
    --tile-bg: #AFBCCB;
    background: var(--tile-bg) !important;
    border-color: var(--tile-bg) !important;
}
/* Lightweight font for landing button descriptions */
.landing-desc {
    font-weight: 300;
}
/* Hover effects: desktop only (prevents sticky hover on mobile touch devices) */
@media (hover: hover) and (pointer: fine) {
    .landing-panel .landing-field .landing-link:hover {
        background: #000 !important;
        border-color: #000 !important;
        color: #ffffff !important;
        transform: translateY(-2px);
        box-shadow: 0 15px 30px rgba(0,0,0,0.3);
    }
}

/* Touch devices: disable hover/focus effects with scoped targets (safer for all browsers) */
@media (hover: none) and (pointer: coarse) {
    /* Landing squares */
    .landing-panel .landing-field .landing-link {
        -webkit-transition: none !important;
        transition: none !important;
        touch-action: manipulation !important;
        -webkit-tap-highlight-color: transparent !important;
    }

    .landing-panel .landing-field .landing-link:hover,
    .landing-panel .landing-field .landing-link:focus,
    .landing-panel .landing-field .landing-link:active {
        background: var(--tile-bg) !important;
        border-color: var(--tile-bg) !important;
        color: #ffffff !important;
        transform: none !important;
        box-shadow: none !important;
        opacity: 1 !important;
        outline: none !important;
    }

    /* Back links */
    .back-link {
        -webkit-transition: none !important;
        transition: none !important;
        touch-action: manipulation !important;
        -webkit-tap-highlight-color: transparent !important;
    }

    .back-link:hover,
    .back-link:focus,
    .back-link:active {
        background: #000000 !important;
        border-color: #000000 !important;
        color: white !important;
        transform: none !important;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
    }

    /* Glossary navigation */
    .glossary-letters a {
        -webkit-transition: none !important;
        transition: none !important;
        touch-action: manipulation !important;
        -webkit-tap-highlight-color: transparent !important;
    }

    .glossary-letters a:hover,
    .glossary-letters a:focus,
    .glossary-letters a:active {
        background: inherit !important;
        border-color: inherit !important;
        color: inherit !important;
    }

    /* Form elements and buttons (exclude header buttons) */
    button:not(.hamburger-btn):not(.login-btn-standalone),
    input[type="button"],
    input[type="submit"] {
        -webkit-transition: none !important;
        transition: none !important;
        touch-action: manipulation !important;
        -webkit-tap-highlight-color: transparent !important;
    }

    button:not(.hamburger-btn):not(.login-btn-standalone):hover,
    button:not(.hamburger-btn):not(.login-btn-standalone):focus,
    button:not(.hamburger-btn):not(.login-btn-standalone):active,
    input[type="button"]:hover,
    input[type="button"]:focus,
    input[type="button"]:active,
    input[type="submit"]:hover,
    input[type="submit"]:focus,
    input[type="submit"]:active {
        background: inherit !important;
        border-color: inherit !important;
        color: inherit !important;
        transform: none !important;
        box-shadow: none !important;
    }

    /* FAQ button maintains its color on touch devices */
    .landing-panel .landing-field .landing-link.landing-link-faq,
    .landing-panel .landing-field .landing-link.landing-link-faq:hover,
    .landing-panel .landing-field .landing-link.landing-link-faq:focus,
    .landing-panel .landing-field .landing-link.landing-link-faq:active {
        background: #AFBCCB !important;
        border-color: #AFBCCB !important;
    }
}

/* JS fallback for touch-capable browsers that misreport hover/pointer (e.g., Opera Mobile) */
.has-touch .landing-panel .landing-field .landing-link {
    -webkit-transition: none !important;
    transition: none !important;
    touch-action: manipulation !important;
    -webkit-tap-highlight-color: transparent !important;
}

.has-touch .landing-panel .landing-field .landing-link:hover,
.has-touch .landing-panel .landing-field .landing-link:focus,
.has-touch .landing-panel .landing-field .landing-link:active {
    background: var(--tile-bg) !important;
    border-color: var(--tile-bg) !important;
    color: #ffffff !important;
    transform: none !important;
    box-shadow: none !important;
    opacity: 1 !important;
    outline: none !important;
}

.has-touch .back-link {
    -webkit-transition: none !important;
    transition: none !important;
    touch-action: manipulation !important;
    -webkit-tap-highlight-color: transparent !important;
}

.has-touch .back-link:hover,
.has-touch .back-link:focus,
.has-touch .back-link:active {
    background: #000000 !important;
    border-color: #000000 !important;
    color: white !important;
    transform: none !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
}

.has-touch .glossary-letters a {
    -webkit-transition: none !important;
    transition: none !important;
    touch-action: manipulation !important;
    -webkit-tap-highlight-color: transparent !important;
}

.has-touch .glossary-letters a:hover,
.has-touch .glossary-letters a:focus,
.has-touch .glossary-letters a:active {
    background: inherit !important;
    border-color: inherit !important;
    color: inherit !important;
}

.has-touch button:not(.hamburger-btn):not(.login-btn-standalone),
.has-touch input[type="button"],
.has-touch input[type="submit"] {
    -webkit-transition: none !important;
    transition: none !important;
    touch-action: manipulation !important;
    -webkit-tap-highlight-color: transparent !important;
}

.has-touch button:not(.hamburger-btn):not(.login-btn-standalone):hover,
.has-touch button:not(.hamburger-btn):not(.login-btn-standalone):focus,
.has-touch button:not(.hamburger-btn):not(.login-btn-standalone):active,
.has-touch input[type="button"]:hover,
.has-touch input[type="button"]:focus,
.has-touch input[type="button"]:active,
.has-touch input[type="submit"]:hover,
.has-touch input[type="submit"]:focus,
.has-touch input[type="submit"]:active {
    background: inherit !important;
    border-color: inherit !important;
    color: inherit !important;
    transform: none !important;
    box-shadow: none !important;
}

/* FAQ button maintains its color on touch devices */
.has-touch .landing-panel .landing-field .landing-link.landing-link-faq,
.has-touch .landing-panel .landing-field .landing-link.landing-link-faq:hover,
.has-touch .landing-panel .landing-field .landing-link.landing-link-faq:focus,
.has-touch .landing-panel .landing-field .landing-link.landing-link-faq:active {
    background: #AFBCCB !important;
    border-color: #AFBCCB !important;
}

/* Landing squares: drop to 2 columns and then 1 on narrow screens */
@media (max-width: 900px) { .landing-panel { max-width: var(--tiles-w1); } }

/* ========================= Unified tile grids (Index, Standardy, Kalkulátor) ========================= */
/* Use the same container logic for both landing-panel (index/standardy) and choices-container (kalkulátor) */
.landing-panel,
.choices-container {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: var(--tile-gap) !important;
    justify-content: center !important;   /* center tiles horizontally */
    align-items: stretch !important;
    max-width: var(--tiles-w3) !important;
    width: var(--tiles-w3) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
@media (max-width: 900px) {
    .landing-panel,
    .choices-container { max-width: var(--tiles-w1) !important; width: var(--tiles-w1) !important; }
    /* Also center the individual tiles themselves to prevent any residual left-shift */
    .landing-panel .landing-field .landing-link { margin-left: auto !important; margin-right: auto !important; }
    .choices-container .choice-button { margin-left: auto !important; margin-right: auto !important; }
    /* Ensure parent wrappers themselves are centered */
    .main-content-index,
    .landing-panel,
    .choices-container { margin-left: auto !important; margin-right: auto !important; }
    /* Remove side margins/padding that can visually offset centering */
    body.page-standardy { margin-left: 0 !important; margin-right: 0 !important; }
}

/* Minimal index footer styles */
.page-index-minimal footer { width: 100%; margin-top: 2rem; }
.page-index-minimal .licence-section { display: flex; justify-content: center; align-items: center; width: 100%; }
.page-index-minimal .licence-left { text-align: center; margin: 0 auto; }
.page-index-minimal .cc-icon { height: 1em; vertical-align: middle; margin-left: 0.2em; }

/* Ensure scroll wrappers don't inherit side padding from generic .main-content rules */
.main-content.main-content-index { padding-left: 0 !important; padding-right: 0 !important; }

/* Auth page: override main-content-index constraints */
.auth-container { max-width:500px; margin:0 auto; padding:32px 20px; }

@media (max-width: 900px) {
  .main-content.main-content-index:has(.auth-container) {
    padding: 0 !important;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
  }
}

/* Ensure Standardy container never re-introduces side padding on small screens */
body.page-standardy .container { padding-left: 0 !important; padding-right: 0 !important; }

/* Footer styles for kalkulátor pages (moved from inline in kalkulátor detail) */
.page-kalkulator footer { width: 100%; margin-top: 0 !important; }
.page-kalkulator .licence-section { display: flex; justify-content: center; align-items: center; width: 100%; }
.page-kalkulator .licence-left { text-align: center; margin: 0 auto; }
.page-kalkulator .cc-icon { height: 1em; vertical-align: middle; margin-left: 0.2em; }

/* ================= Auth (login / register) ================= */

.auth-container { max-width:500px; margin:0 auto; padding:32px 20px; }
.auth-card { background:#fff; border:none; border-radius:0; padding:32px; box-shadow:0 20px 40px rgba(0,0,0,0.3); width: 500px; height: 500px; display: flex; flex-direction: column; justify-content: center; box-sizing: border-box; }

/* Mobile responsive auth card */
@media (max-width: 900px) {
  /* Override main-content constraints */
  .main-content:has(.auth-container),
  .main-content.main-content-index:has(.auth-container) {
    min-height: 125vh;
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100vw !important;
    width: 100vw !important;
  }
  
  /* Override container constraints */
  .container.auth-container { 
    padding: 15vh 15px 35vh 15px !important;
    max-width: 100vw !important;
    width: 100vw !important;
    min-height: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
  }
  
  /* Auth card sizing */
  .auth-card { 
    width: 100%;
    max-width: 400px;
    height: auto; 
    min-height: 0;
    padding: 40px 30px;
    margin: 0 auto;
    box-shadow: 0 10px 30px rgba(0,0,0,0.2);
  }

  /* Reduce font sizes for auth texts on mobile */
  .auth-header h2.main-title {
    font-size: 1.2rem;
  }

  .auth-card .auth-footnote {
    font-size: 0.675rem;
  }
}

.auth-header { margin-bottom:8px; text-align:center; }
.auth-sub { color:#000; margin:0 0 16px; text-align:center; }
.auth-tabs { display:flex; gap:8px; margin-bottom:16px; }
.auth-tabs button { flex:1; padding:10px 12px; border:1px solid #d1d5db; background:#f8fafc; color:#334155; border-radius:0; cursor:pointer; font-weight:600; transition:all 0.3s ease; }
.auth-tabs button.active { background:#25303C; color:#fff; border-color:#25303C; border-radius:0; }
.auth-social { display:flex; flex-direction:column; gap:8px; margin:10px 0 8px; }
.oauth-btn { display:flex; align-items:center; justify-content:center; gap:8px; padding:14px 18px; border:2px solid #25303C; border-radius:0; background:#25303C; color:#fff; text-decoration:none; font-weight:600; font-size:1.05rem; transition:all 0.3s ease; }
.oauth-btn:hover { background:#708AA7; border-color:#708AA7; transform:translateY(-1px); box-shadow:0 4px 12px rgba(112,138,167,0.3); }
.auth-divider { display:flex; align-items:center; gap:12px; margin:10px 0 18px; color:#6b7280; }
.auth-divider::before, .auth-divider::after { content:""; height:1px; flex:1; background:#e5e7eb; }
.auth-grid { display:grid; grid-template-columns:1fr; gap:24px; }
.auth-panel { display:none; }
.auth-panel.active { display:block; }
.auth-field { margin-bottom:14px; }
.auth-field label { display:block; font-weight:600; margin-bottom:6px; color: #0e0e0e; }
.auth-field input[type=email],
.auth-field input[type=password],
.auth-field input[type=text] { width:100%; padding:10px 12px; border:2px solid #25303C; border-radius:0; background:#fff; color:#0e0e0e; transition:all 0.3s ease; }
.auth-field input[type=email]:focus,
.auth-field input[type=password]:focus,
.auth-field input[type=text]:focus { outline:none; border-color:#A67644; box-shadow:0 0 0 3px rgba(191,136,82,0.1); }
.row-between { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.row-center { display:flex; align-items:center; gap:8px; }
.auth-actions { margin-top:10px; display:flex; flex-direction:column; gap:8px; }
.btn-primary { appearance:none; border:0; border-radius:0; padding:12px 14px; background:#25303C; color:#fff; font-weight:700; cursor:pointer; transition:all 0.3s ease; }
.btn-primary:hover { background:#708AA7; transform:translateY(-1px); box-shadow:0 4px 12px rgba(112,138,167,0.3); }
.btn-primary[disabled] { opacity:.6; cursor:not-allowed; }
.btn-secondary { appearance:none; border:2px solid #25303C; border-radius:0; padding:10px 12px; background:#fff; color:#25303C; font-weight:600; cursor:pointer; transition:all 0.3s ease; }
.btn-secondary:hover { background:#708AA7; color:#fff; border-color:#708AA7; }
.link { color:#25303C; text-decoration:none; font-weight:600; }

/* ---- Final spacing overrides for tile sections ---- */
.page-scroll .scroll-section { padding-bottom: 2rem !important; }
#section-index .landing-panel,
#section-standardy .landing-panel,
#section-kalkulator .landing-panel { margin-bottom: 2rem !important; }
#section-standardy .main-content-index,
#section-kalkulator .main-content-index { padding-bottom: 2rem !important; margin-bottom: 0 !important; }
#iframe-standardy,
#iframe-kalkulator { margin-bottom: 0 !important; }
.link:hover { text-decoration:underline; color:#A67644; }
.hint { color:#6b7280; font-size:.9rem; }
.error { color:#b91c1c; }
.success { color:#065f46; }
.badge { display:inline-block; padding:2px 6px; font-size:.75rem; border-radius:0; background:#eef2ff; color:#3730a3; font-weight:700; }
.meter-wrap { display:flex; align-items:center; gap:8px; }
.strength-meter { height:8px; flex:1; border-radius:0; background:#e5e7eb; position:relative; overflow:hidden; }
.strength-meter > span { display:block; height:100%; width:0%; background:#ef4444; transition:width .25s ease, background .25s ease; border-radius:0; }
.auth-message { margin-top:14px; min-height:22px; }
.auth-footnote { margin-top:8px; font-size:.9rem; color:#000; font-style:italic; text-align:center; }
.hidden { display:none; }

/* Password overlay (moved from inline) */
.password-overlay { position: fixed; inset: 0; background: #ffffff; display: flex; justify-content: center; align-items: center; z-index: 9999; font-family: Arial, sans-serif; }
.password-box { background: #fff; padding: 2rem; border-radius: 0; box-shadow: 0 20px 40px rgba(0,0,0,0.3); text-align: center; max-width: 500px; width: 500px; height: 500px; display: flex; flex-direction: column; justify-content: center; }

/* Mobile responsive password box */
@media (max-width: 900px) {
  .password-overlay {
    padding: 15px;
  }
  
  .password-box {
    width: calc(100vw - 30px);
    max-width: 400px;
    aspect-ratio: 1 / 1;
    height: auto;
    padding: 40px 30px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.2);
  }
}

.password-title { margin-bottom: 1rem; color: #333; font-size: 1.85rem; font-weight: 300; line-height: 1.2; }
.password-note { font-size: 0.95em; color: #444; display: inline-block; margin: 0.75rem 0; }
.password-input { width: 100%; padding: 0.8rem; margin: 1rem 0; border: 2px solid #b76666; border-radius: 0; font-size: 1rem; outline: none; }
.password-button { background: #b76666; color: #fff; border: none; padding: 0.8rem 2rem; font-size: 1rem; cursor: pointer; border-radius: 0; transition: filter 0.2s ease; }
.password-button:hover { filter: brightness(0.95); }
.password-button:hover { filter: brightness(0.95); }
.password-error { color: #d32f2f; margin-top: 1rem; display: none; }

/* Inputs: hide WebKit number spinners for EUR inputs only */
.eur-input[type=number]::-webkit-outer-spin-button,
.eur-input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.eur-input[type=number] { -moz-appearance: textfield; appearance: textfield; }

/* Warning text inside result table */
.result-table .warning-text { color: red; font-size: 1.0em; }

/* ========================= Merged: STANDARDY/NEWSLETTER styles ========================= */
/* Scoped base typography for standardy pages */
body.page-standardy {
    font-family: Arial, sans-serif; /* match global body font */
    margin: 0;            /* remove extra margins to align header/menu */
    background: #dfdedc; /* match grey background used on other subpages */
    color: #222;
}

/* Header/title helpers used on standardy pages */
.header-left { display: block; text-align: left; margin-left: 1.5em; }
.header-left h1 { font-size: 2.8em; line-height: 1.1; margin: 0; }

/* Footer license on standardy page */
body.page-standardy .licence-left {
    background: none; color: #222; text-align: center; padding: 1rem; margin-top: 4rem;
}
.footer-spacer { height: 20rem; }
.cc-icon { max-width: 1em; max-height: 1em; margin-left: .2em; }

/* Portfolio buttons grid (used by newsletter/standardy pages) */
.portfolio-buttons {
    /* Use flexbox to mirror wrapping behavior of other square groups */
    display: flex;
    flex-wrap: wrap;
    gap: var(--tile-gap);
    justify-content: center;
    align-items: stretch;
    width: 100%;
    max-width: var(--tiles-w3);
    margin: 0 auto;
    box-sizing: border-box;
}
/* Keep anchors block-level; specific sizes are set on the square classes below */
.portfolio-buttons a { display: block; }
.portfolio-buttons a:last-child { margin-bottom: 2.8em; }
.portfolio-buttons button {
    width: 100%; background: var(--primary); color: #fff; border: none; padding: 1.72em 2.30em;
    font-size: 1.38em; font-weight: bold; border-radius: 4px; cursor: pointer; transition: background 0.2s, color 0.2s;
    box-sizing: border-box; max-width: 100%; height: 5.17em;
}
.portfolio-buttons .intro-button { background: var(--primary); color: #fff; }
.portfolio-buttons .intro-button:hover, .portfolio-buttons button:hover { background: #000000; color: #ffffff; }

/* Standardy green square buttons (moved from inline styles in standardy.html) */
.portfolio-buttons a.uvod-btn,
.portfolio-buttons a.portfolio-btn {
    display: flex;               /* override generic anchor display */
    flex-direction: column;
    align-items: flex-start;     /* top-left alignment */
    justify-content: flex-start; /* top-left alignment */
    /* Fixed square size for consistent wrapping like other pages */
    width: 275px;
    height: 275px;
    padding: 10px 10px 0 10px;
    box-sizing: border-box;
    background: var(--primary);
    color: #fff;
    text-decoration: none;
    border: 2px solid var(--primary);
    border-radius: 0px;
    font-size: 1.5em;
    font-weight: bold;
    transition: background 0.2s, color 0.2s, border-color 0.2s, transform 0.2s, box-shadow 0.2s;
    /* Match base shadow strength with index */
    box-shadow: 0 10px 20px rgba(0,0,0,0.12);
}
.portfolio-buttons a.uvod-btn:hover,
.portfolio-buttons a.portfolio-btn:hover,
.portfolio-buttons a.uvod-btn:focus,
.portfolio-buttons a.portfolio-btn:focus,
.portfolio-buttons a.uvod-btn:active,
.portfolio-buttons a.portfolio-btn:active {
    background: #000 !important;
    border-color: #000 !important;
    color: #fff !important;
    transform: translateY(-2px);
    box-shadow: 0 15px 30px rgba(0,0,0,0.3);
}
    .index-intro-title,
    .section-intro-title {
        font-size: 2.2rem;
        font-weight: 300;
        text-align: left;
        color: #222;
        margin-top: 0.5em;
        margin-bottom: 1.2em;
    }
#floating-square {
    position: absolute;
    width: 80px;
    height: 80px;
    background: var(--primary);
    border-radius: 0;
    left: 0;
    top: 0;
    will-change: transform;
}

/* Catalog and document styles */
.catalog-header { width: 90%; margin-left: auto; margin-right: auto; text-align: left; margin-bottom: 1.5em; color: #000; position: relative; }
.catalog-header-bar { display: none; }
.catalog-header-content { margin-left: 0px; }
.catalog-title { margin: 0; color: #000; margin-top: 2em; margin-left: 20px; font-weight: 300; }
.catalog-nav { margin-top: 1em; margin-bottom: 2em; }
.catalog-nav ul { list-style: none; padding: 0; margin: 0 0 0 20px; }
.catalog-nav-link { color: #000; text-decoration: none; font-size: 110%; }
.dataframe { border-collapse: collapse; width: 90%; margin-bottom: 2em; margin-left: auto; margin-right: auto; }
.sheet-table th, .sheet-table td { border: 1px solid #aaa; padding: 0.5em; }
.sheet-table th { background: #f0f0f0; }
.equal-cols th:nth-child(2), .equal-cols th:nth-child(3), .equal-cols th:nth-child(4),
.equal-cols td:nth-child(2), .equal-cols td:nth-child(3), .equal-cols td:nth-child(4) { width: 32%; }
.equal-cols th:first-child, .equal-cols td:first-child { width: 4%; white-space: nowrap; }
.row-small { font-size: 75%; }
.num-align { text-align: right; padding-right: 0.7em; font-size: 1.1rem !important; font-weight: normal; min-width: 2.2em; vertical-align: middle; line-height: 1.5; }
.header-green { background: var(--primary) !important; color: #fff !important; border: 1px solid var(--primary) !important; font-weight: 300; }
.header-green td, .header-green th { border: 1px solid var(--primary) !important; }
.phase-title { background: var(--primary) !important; color: #fff !important; font-weight: 300; border: 1px solid var(--primary) !important; font-size: 1.5em; text-align: left; scroll-margin-top: 120px; }
.phase-title-cell, .phase-title-td { text-align: left; padding-left: 0.5em; }
.phase-title td, .phase-title th { border: 1px solid var(--primary) !important; }

/* Mobile scroll adjustment for phase titles */
@media (max-width: 900px) {
    .phase-title { scroll-margin-top: 60px; }
}
.white-gap { background: #fff !important; height: 0.8em; border: none !important; }
.table-striped tr:nth-child(even):not(.header-green):not(.phase-title):not(.white-gap) { background: #e7e7e7; }
.table-striped tr:nth-child(odd):not(.header-green):not(.phase-title):not(.white-gap) { background: #fff; }
.back-to-top { width: 90%; margin: -1em auto 2em auto; text-align: right; }

/* ---------------- Inline styles consolidation: standardy/index landing grid ---------------- */
/* Core wrapper used by index scroll section and standardy landing grid */
.main-content-index {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    max-width: calc(3 * 275px + 24px);
    margin: 25px auto 0 auto;
    padding: 1rem 0;
    box-sizing: border-box;
    overflow-x: hidden;
}

/* When embedded in an iframe, avoid vh-based min-height to prevent infinite iframe growth */
body.embedded,
body.embedded .container,
body.embedded .main-content-index {
    min-height: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
}
body.embedded .container {
    justify-content: flex-start !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
}
body.embedded .main-content-index {
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 auto !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    overflow: visible !important;
}
body.embedded .main-content-index,
body.embedded .portfolio-buttons {
    overflow-x: hidden !important; /* allow specific max-width overrides to take effect */
}
body.embedded {
    min-height: 0 !important;
}
body.embedded .landing-panel {
    margin-bottom: 0 !important;
    margin-top: 0 !important;
}
body.embedded .container {
    min-height: 0 !important;
    padding: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    justify-content: flex-start !important;
    align-items: stretch; /* allow children to take full max-width; centering done on child wrappers */
    max-width: calc(3 * 275px + 24px); /* match grid width for exact centering */
    margin-left: auto;
    margin-right: auto;
}
@media (max-width: 900px) {
    body.embedded .container { max-width: 275px; }
}

/* Responsive scaling for the 3x3 green squares grid */

/* Embedded pages inherit the same widths; avoid special-case overrides */
@media (max-width: 900px) {
    .main-content-index { min-height: 80vh; padding: 0.5rem 0; }
    body.embedded .main-content-index { min-height: 0 !important; padding: 0 !important; }
    .portfolio-buttons { max-width: var(--tiles-w1); }
    .portfolio-buttons a.uvod-btn,
    .portfolio-buttons a.portfolio-btn { font-size: 1.3em; }
}
@media (max-width: 900px) {
    .portfolio-buttons { max-width: var(--tiles-w1); }
    .portfolio-buttons a.uvod-btn,
    .portfolio-buttons a.portfolio-btn { width: var(--tiles-w1); }
}

/* Embedded kalkulátor: harden 3/2/1 columns so it never collapses to 1 on desktop */
body.embedded.page-kalkulator .choices-container {
    display: flex !important;
    flex-wrap: nowrap !important; /* force a single row on desktop */
    justify-content: center !important;
    gap: 12px !important;
    max-width: calc(3 * 275px + 24px) !important;
    width: calc(3 * 275px + 24px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
@media (max-width: 900px) {
    body.embedded.page-kalkulator .choices-container { flex-wrap: wrap !important; max-width: var(--tiles-w1) !important; width: var(--tiles-w1) !important; }
}


/* Viewport height fallback for older browsers */
@supports not (height: 100vh) {
    html, body { height: 100%; }
}

/* ------------------------------------------------------------------
   Fragment target offset (minimal, layout-preserving)
   Apply scroll-margin only when an element is targeted with a hash.
   This is a small, widely-used fix that preserves layout while
   making native hash-jumps align under the fixed header in all browsers.
   ------------------------------------------------------------------ */
.page-scroll :target {
    scroll-margin-top: var(--header-offset, 132px) !important;
}

/* ---------------- Inline styles consolidation: GA consent modal ---------------- */
#ga-confirm-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.7);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    pointer-events: all;
}
#ga-confirm-prompt {
    background: #fff;
    border-radius: 0;
    box-shadow: 0 20px 40px rgba(0,0,0,0.3);
    padding: 25px;
    max-width: 400px;
    text-align: center;
}
.ga-confirm-text { margin-bottom: 20px; font-size: 1.2em; }
.ga-confirm-btn {
    background: #b76666;
    color: #fff;
    border: none;
    border-radius: 0;
    padding: 14px 20px;
    font-size: 1.2em;
    cursor: pointer;
    transition: background 0.2s;
}
.ga-confirm-btn:hover { background: #708AA7; }
.analytics-notice { font-size: 0.95em; color: #444; }
.ga-consent-actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* ---------------- Inline styles consolidation: faktory-sadzby page ---------------- */
body.page-faktory { font-family: 'Segoe UI', sans-serif; }
.page-faktory .main-content { max-width: 800px; margin: 12rem auto 4rem auto; padding: 2rem; }
.page-faktory .spacer { height: 28rem; }
.bold-text { font-weight: bold; }
.email-highlight { color: var(--primary); }

/* ---------------- Inline styles consolidation: kontakt page form controls ---------------- */
.kontakt-form-wrapper input[type="text"],
.kontakt-form-wrapper input[type="email"] {
    width: 900px; font-size: 1.15em; padding: 0.7em 0.8em; box-sizing: border-box; margin-bottom: 0.5em;
}
.kontakt-form-wrapper textarea {
    width: 900px; font-size: 1.15em; padding: 0.7em 0.8em; box-sizing: border-box; min-height: 280px; margin-bottom: 0.5em;
}
/* Kontakt page submit button: make it prominent and accessible */
.page-kontakt .kontakt-form-wrapper button[type="submit"] {
    display: block;
    width: 900px;
    background: var(--primary);
    color: #fff;
    border: none;
    padding: 0.95rem 1.25rem;
    font-size: 1.125rem;
    font-weight: 600;
    border-radius: 0;
    box-shadow: 0 4px 16px rgba(0,0,0,0.12);
    cursor: pointer;
    transition: background 0.18s ease, transform 0.15s ease;
}
.page-kontakt .kontakt-form-wrapper button[type="submit"]:hover { transform: translateY(-1px); background: #000; color: #fff; }
.page-kontakt .kontakt-form-wrapper button[type="submit"]:active { transform: translateY(0); background: #000; color: #fff; }
.page-kontakt .kontakt-form-wrapper button[type="submit"]:focus { outline: 2px solid #0ea5e9; outline-offset: 2px; }

@media (max-width: 900px) {
    .kontakt-form-wrapper input[type="text"],
    .kontakt-form-wrapper input[type="email"],
    .kontakt-form-wrapper textarea {
        width: 100% !important;
    }
    .page-kontakt .kontakt-form-wrapper button[type="submit"] {
        width: 100% !important;
        font-size: 1rem;
        padding: 1rem 1.1rem;
        border-radius: 0;
    }
}

/* ---------------- Inline styles consolidation: zmluva (contract) page ---------------- */
.zmluva-toolbar { background: #fff; border-bottom: 1px solid #eee; }
.zmluva-button-row { width: 100%; display: flex; justify-content: flex-end; align-items: center; padding: 0.5rem 2rem; margin-top: 0.5rem; }
.zmluva-button-row.left-align { justify-content: flex-start !important; }
.page-zmluva .download-docx-btn {
    position: static; top: auto; right: auto; z-index: auto; font-size: 1em; background: #999999; color: #fff; border: none; border-radius: 4px; padding: 0.6em 1.2em; cursor: pointer; text-decoration: none; font-family: Arial, sans-serif; font-weight: bold; box-shadow: 0 2px 8px rgba(0,0,0,0.07); transition: background 0.2s; margin-right: 4rem;
}
.page-zmluva .download-docx-btn:hover { background: #000000; color: #fff; text-decoration: none; }
.zmluva-main { padding: 1rem 2rem; }
@media (max-width: 850px) {
    .zmluva-header { padding: 0; }
    .zmluva-button-row { justify-content: flex-end; padding: 0.3rem 1rem; }
    .page-zmluva .download-docx-btn { font-size: 0.95em; padding: 0.5em 1em; margin-right: 1rem; }
    .zmluva-main { padding: 0.5rem 1rem; }
}
@media (max-width: 550px) {
    .zmluva-header { padding: 0; }
    .zmluva-button-row { padding: 0.2rem 0.5rem; justify-content: flex-end; }
    .page-zmluva .download-docx-btn { font-size: 0.9em; padding: 0.4em 0.8em; margin-right: 0.5rem; }
    .zmluva-main { padding: 0.2rem 0.5rem; }
}
.back-to-top-link { color: #000; text-decoration: underline; font-weight: 300; }
.footer-note { font-size: 1.0em; color: #555; margin-top: 1em; width: 90%; margin-left: auto; margin-right: auto; text-align: left; font-weight: 300; }
.kontakt-form-wrapper { max-width: 900px; margin: 0 auto; padding: 2rem; }
.main-content { max-width: 850px; margin: 2rem auto 4rem auto; padding: 2rem; }
.bold-message { font-weight: bold; }
.spacer-6rem { height: 6rem; }
.spacer-0rem { height: 0rem; }
.main-title-box { font-size: 2.2rem; font-weight: 300; margin-bottom: 1.5rem; color: #0e0e0e; background: #fff; line-height: 1.2; }
.obsah-box { background: var(--primary); border-radius: 0; border: 1px solid var(--primary); padding: 2rem 1.5rem 1.5rem 1.5rem; margin-bottom: 2rem; color: #fff; font-weight: normal; position: relative; border-left: 7px solid var(--primary); padding-top: 20px; padding-bottom: 20px; }
.obsah-box a, .obsah-box strong, .obsah-box div, .obsah-box span { color: #fff !important; font-weight: 300 !important; font-size: 1.1rem; }
.obsah-box > a, .obsah-box > strong { font-weight: 300 !important; font-size: 1.5rem !important; color: #fff !important; }
/* Ensure obsah links stack and have spacing when using global CSS only */
.obsah-box a { display: block; margin: 0.2rem 0; }

/* Standardy: global typography, content container, and nav-in-content */
/* Explicitly keep CSS scroll-behavior off to avoid conflicts with JS anchors */
html { scroll-behavior: auto; }
h1, h2, h3 { color: #0e0e0e; }
body { color: #0e0e0e; background: #dfdedc; }
h1, h2, h3 { color: #0e0e0e; }
.content { max-width: 900px; margin: 2rem auto 4rem auto; padding: 2rem; background: #fff; color: #0e0e0e; box-shadow: 0 8px 24px rgba(0,0,0,0.08); }
.content h3 { margin-top: 1.5rem; }
.content nav:not(.obsah-box) { background: #fff; padding: 1rem; margin-bottom: 2rem; }
.content nav:not(.obsah-box) a { display: block; color: #0e0e0e; text-decoration: none; margin: 0.2rem 0; }
.content nav:not(.obsah-box) strong { text-decoration: none; color: #0e0e0e; font-size: 0.9rem; }
.top-link { text-align: right; margin-top: 2rem; }
.top-link a { text-decoration: none; color: #0e0e0e; font-size: 0.9rem; }
sup { font-size: 65%; }

/* Standardy: details/summary and helpers */
.content details { margin-bottom: 2rem; border: 1px solid #ccc; border-left: 5px solid var(--primary); background: #fff; padding: 1rem; }
.content details, .content details * { color: #0e0e0e; }
.content summary { font-size: 1.8rem; font-weight: 300; cursor: pointer; color: #0e0e0e; line-height: 1.2; }
.content details > *:not(summary) { display: block; }
.quote { font-style: italic; margin: 1rem 0; padding-left: 1rem; color: #444; font-weight: 300; font-size: 1.12rem; line-height: 1.2; }
[contenteditable] { outline: none; white-space: pre-wrap; }
.content-indent { padding-left: 1.5em; }
[contenteditable] { outline: none; white-space: pre-wrap; }
.print-btn { display: none; margin: 4rem auto 2rem; background: var(--primary); color: #fff; border: none; padding: 0.7rem 1.5rem; font-size: 1rem; border-radius: 0; cursor: pointer; }

/* Standardy: subchapter strong titles */
.subchapters strong { font-size: 1.4rem; font-weight: 300; line-height: 1.2; }

/* Standardy: subchapter numbering */
ol.subchapters { padding-left: 2.5em; list-style: none; counter-reset: subchapter; }
ol.subchapters > li { padding-left: 1.5em; }
ol.subchapters.no-left-padding { padding-left: 0; }
ol.subchapters[data-chapter="1"] { counter-reset: subchapter1; }
ol.subchapters[data-chapter="1"] > li { counter-increment: subchapter1; position: relative; margin-bottom: 1rem; padding-left: 1.5em; }
ol.subchapters[data-chapter="1"] > li::before { content: "1." counter(subchapter1) " "; font-weight: 300; font-size: 1.4rem; color: #0e0e0e; display: inline; margin-right: 0.5em; }
ol.subchapters[data-chapter="2"] { counter-reset: subchapter2; }
ol.subchapters[data-chapter="2"] > li { counter-increment: subchapter2; position: relative; margin-bottom: 1rem; padding-left: 1.5em; }
ol.subchapters[data-chapter="2"] > li::before { content: "2." counter(subchapter2) " "; font-weight: 300; font-size: 1.4rem; color: #0e0e0e; display: inline; margin-right: 0.5em; }
ol.subchapters[data-chapter="3"] { counter-reset: subchapter3; }
ol.subchapters[data-chapter="3"] > li { counter-increment: subchapter3; position: relative; margin-bottom: 1rem; padding-left: 1.5em; }
ol.subchapters[data-chapter="3"] > li::before { content: "3." counter(subchapter3) " "; font-weight: 300; font-size: 1.4rem; color: #0e0e0e; display: inline; margin-right: 0.5em; }
ol.subchapters[data-chapter="4"] { counter-reset: subchapter4; }
ol.subchapters[data-chapter="4"] > li { counter-increment: subchapter4; position: relative; margin-bottom: 1rem; padding-left: 1.5em; }
ol.subchapters[data-chapter="4"] > li::before { content: "4." counter(subchapter4) " "; font-weight: 300; font-size: 1.4rem; color: #0e0e0e; display: inline; margin-right: 0.5em; }

/* Print styles for standardy */
@media print {
    .print-btn, .top-link, footer { display: none; }
    body { background: #fff; }
    .content { box-shadow: none; }
    .content details { page-break-before: always; page-break-after: always; }
    .content nav { display: block; border: none; padding: 0; page-break-after: always; }
    .content nav strong { display: block; font-size: 1.2rem; margin-bottom: 1rem; }
    .content nav a { color: #000; text-decoration: none; }
}

/* Mobile adjustments for standardy */
@media (max-width: 900px) {
    .content { padding: 1rem; }
}

/* Standardy mobile typography: smaller body/paragraph text, keep headings readable */
@media (max-width: 900px) {
    .page-standardy .content {
        font-size: 13px !important;
        line-height: 1.5 !important;
    }

    .page-standardy .content p,
    .page-standardy .content li {
        font-size: 13px !important;
        line-height: 1.5 !important;
    }

    .page-standardy .content summary {
        font-size: 1.4rem !important;
    }

    /* Shrink obsah nav text on mobile */
    .page-standardy .obsah-box > a,
    .page-standardy .obsah-box > strong,
    .page-standardy .obsah-box .obsah-indent a,
    .page-standardy .obsah-box .obsah-indent strong {
        font-size: 1rem !important;
    }

    .page-standardy .obsah-box > strong {
        font-size: 1.2rem !important;
    }

    .page-standardy .main-title-box {
        font-size: 1.6rem !important;
        line-height: 1.2 !important;
    }
}
.obsah-indent { padding-left: 1.5em; }
.pravne-predpisy-section { margin: 5em 0 1em 0; }
.pravne-predpisy-list { font-size: 0.7em; line-height: 1.3; color: #000000; }
.info-warning { margin-bottom: 2em; color: #000000; font-size: 1.0em; font-weight: bold; text-align: justify; }
.author-row { margin-top: 2rem; font-weight: bold; display: flex; align-items: flex-start; font-size: 1rem; line-height: 1.5; flex-wrap: wrap; }
.author-label { min-width: 8rem; display: inline-block; }
.author-value { font-weight: normal; margin-left: 1rem; flex: 1; }
.author-note { color: #000000; font-size: 1rem; text-align: justify; margin-left: 0; }
.line-break { line-height: 0; margin: 0; padding: 0; }

.relative-body { position: relative; }
.download-docx-btn { position: absolute; top: 1.2em; right: 2em; z-index: 10; font-size: 1em; background: #999999; color: #fff; border: none; border-radius: 4px; padding: 0.6em 1.2em; cursor: pointer; text-decoration: none; font-family: Arial, sans-serif; font-weight: bold; box-shadow: 0 2px 8px rgba(0,0,0,0.07); transition: background 0.2s; }
.download-docx-btn.left-margin {
    margin-right: 13rem !important;
}
.download-docx-btn:hover { background: #000000; color: #fff; text-decoration: none; }
.pdf-frame { border: 1px solid #ccc; }
.message { border-left: 5px solid var(--primary); padding: 1rem 2rem; background: #fff; }
.footer-spacer-kalkulator { height: 15rem; }
.kalkulator-center { width: 100vw; display: flex; justify-content: center; align-items: flex-start; overflow-x: hidden; }
.uvod-offset-box { margin-left: 0; position: relative; }
.vyvoj-text, .vyvoj-text-center { display: flex; justify-content: center; align-items: center; min-height: 70vh; color: var(--primary); font-weight: bold; font-size: 3.5rem; text-align: center; letter-spacing: 0.08em; }
.vyvoj-middle { position: fixed; top: 0; left: 0; right: 0; bottom: 0; display: flex; justify-content: center; align-items: center; color: var(--primary); font-weight: bold; font-size: 3.5rem; text-align: center; letter-spacing: 0.08em; z-index: 100; background: transparent; pointer-events: none; }
.vyvoj-middle-layout { position: absolute; top: 50%; left: 0; width: 100%; transform: translateY(-50%); display: flex; justify-content: center; align-items: center; color: var(--primary); font-weight: bold; font-size: 3.5rem; text-align: center; letter-spacing: 0.08em; z-index: 10; background: transparent; pointer-events: none; margin-top: 0; padding-top: 0; }
.vyvoj-center-container { display: flex; justify-content: center; align-items: center; min-height: calc(100vh - 80px); width: 100vw; position: relative; }
.vyvoj-center-text { color: var(--primary); font-weight: bold; font-size: 3.5rem; text-align: center; letter-spacing: 0.08em; }
.center-big-a { position: absolute; left: 800px; top: 500px; font-size: 8rem; font-weight: bold; color: var(--primary); z-index: 10; text-align: center; }

/* Newsletter popup global styles */
#newsletter-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); display: none !important; align-items: center; justify-content: center; z-index: 10000; visibility: hidden; opacity: 0; }
#newsletter-overlay.show { display: flex !important; visibility: visible !important; opacity: 1 !important; animation: fadeIn 0.3s ease; }
#newsletter-popup { background: #f5f5f5; border-radius: 20px; padding: 32px; max-width: 500px; width: 90%; max-height: 90vh; position: relative; animation: slideIn 0.3s ease; box-sizing: border-box; overflow-y: auto; }
.newsletter-close { position: absolute; top: 15px; right: 20px; background: none; border: none; font-size: 24px; cursor: pointer; color: #666; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; border-radius: 50%; transition: all 0.2s ease; }
.newsletter-close:hover { background: #e0e0e0; color: #000; }
.newsletter-popup-title { font-size: 1.25rem; font-weight: 600; color: #000; margin-bottom: 24px; text-align: center; line-height: 1.4; }
.newsletter-popup-form { display: flex; flex-direction: column; gap: 16px; }

/* ---- zmluva page: remove grey strip and align PDF directly under header ---- */
body.page-zmluva { background: #fff; margin: 0; }
body.page-zmluva .logo-header { margin-bottom: 0 !important; padding-bottom: 15px !important; }
body.page-zmluva .zmluva-main { padding-top: 0 !important; }
body.page-zmluva .zmluva-button-row { margin-top: 0 !important; }
.newsletter-email-label { text-align: center; font-size: 16px; font-weight: 500; color: #333; margin-bottom: 8px; font-family: 'Inter', sans-serif; }
.newsletter-popup-email { width: 100%; max-width: 100%; padding: 16px 20px; border: 2px solid #9e9e9ecc; border-radius: 12px; font-size: 16px; font-family: 'Inter', sans-serif; transition: all 0.3s ease; background: white; color: #000; box-sizing: border-box; }
.newsletter-popup-email:focus { outline: none; border-color: var(--primary); transform: translateY(-1px); }
.newsletter-popup-submit { width: 100%; background: var(--primary); color: white; border: none; padding: 18px 32px; border-radius: 12px; font-size: 1.125rem; font-weight: 600; cursor: pointer; transition: all 0.3s ease; display: flex; align-items: center; justify-content: center; gap: 8px; }
.newsletter-popup-submit:hover { transform: translateY(-2px); }
.btn-icon { transition: transform 0.3s ease; font-size: 1.5em; }
.newsletter-popup-submit:hover .btn-icon { transform: translateX(4px); }
.newsletter-popup-loading { display: none; text-align: center; color: #666; font-size: 0.875rem; }
.newsletter-popup-loading.show { display: block; }
.newsletter-popup-spinner { width: 20px; height: 20px; border: 2px solid #e0e0e0; border-top: 2px solid var(--primary); border-radius: 50%; animation: spin 1s linear infinite; margin: 0 auto 8px; }
.newsletter-popup-success, .newsletter-popup-error { display: none; text-align: center; padding: 12px; border-radius: 8px; font-size: 0.875rem; font-weight: 500; }
.newsletter-popup-success.show { display: block; background: rgba(16, 185, 129, 0.1); color: var(--primary); border: 1px solid rgba(16, 185, 129, 0.2); }
.newsletter-popup-error.show { display: block; background: rgba(239, 68, 68, 0.1); color: var(--primary); border: 1px solid rgba(239, 68, 68, 0.2); }
.newsletter-popup-privacy { font-size: 1rem; color: #666; text-align: center; line-height: 1.4; margin-top: 8px; }

/* Newsletter animations */
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes slideIn { from { transform: translateY(-50px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* Responsive adjustments for standardy/newsletter */
@media (max-width: 900px) {
    body.page-standardy { margin: 1rem 0.5rem; }
    .main-content { max-width: 100% !important; margin: 2rem 0.5rem 4rem 0.5rem !important; padding: 1.5rem !important; }
    .kontakt-form-wrapper { max-width: 100% !important; margin: 0 !important; padding: 1rem !important; }
    .catalog-header { width: 100% !important; margin: 0 0.5rem 1.5rem 0.5rem !important; }
    .catalog-title { margin-left: 0.5rem !important; font-size: 2.2em !important; }
    .catalog-nav ul { margin: 0 0 0 0.5rem !important; }
    /* Kontakt page: ensure full-width wrapping without horizontal overflow */
    body.page-kontakt .main-content-index { max-width: 100% !important; width: 100% !important; margin: 0 auto !important; padding: 0 !important; }
    body.page-kontakt .container { max-width: 100% !important; width: 100% !important; margin: 0 auto !important; padding-left: 12px !important; padding-right: 12px !important; overflow-x: hidden !important; }
    /* Kontakt page: shrink space under back link block above footer */
    body.page-kontakt .final-result-spacing { margin-bottom: 0.75rem !important; }
    body.page-kontakt .padding-vertical-2rem { padding: 0.75rem 0 !important; }
    /* Enforce minimal spacing for the back-link block itself */
    body.page-kontakt .final-result { margin-top: 0 !important; margin-bottom: 0.5rem !important; padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; }
    /* Avoid extra container spacing before footer on kontakt */
    body.page-kontakt .container:last-of-type { margin-bottom: 0 !important; padding-bottom: 0 !important; }
}
@media (max-width: 700px) {
    body.page-standardy { margin: 0.5rem 0.2rem; }
    .main-content { margin: 1rem 0.2rem 3rem 0.2rem !important; padding: 1rem !important; }
    .kontakt-form-wrapper { padding: 0.5rem !important; }
    .catalog-header { margin: 0 0.2rem 1rem 0.2rem !important; }
    .catalog-title { font-size: 1.8em !important; }
}
@media (max-width: 550px) {
    body.page-standardy { margin: 0.5rem 0.1rem; }
    .main-content { margin: 0.5rem 0.1rem 2rem 0.1rem !important; padding: 0.8rem !important; }
    .kontakt-form-wrapper { padding: 0.3rem !important; }
    .catalog-header { margin: 0 0.1rem 0.8rem 0.1rem !important; }
    .catalog-title { font-size: 1.6em !important; margin-left: 0.2rem !important; }
    .home-link { margin: 12px 0 0 12px !important; }
}

/* Additional table responsive fixes (preserve 4-column structure) */
@media (max-width: 850px) {
    .dataframe, .sheet-table { width: calc(100% - 1.6rem) !important; font-size: 0.8em !important; margin: 0 0.8rem 2rem 0.8rem !important; table-layout: auto !important; border-collapse: collapse !important; display: table !important; overflow-x: auto; }
    .dataframe tbody, .sheet-table tbody { display: table-row-group !important; }
    .dataframe tr, .sheet-table tr { display: table-row !important; }
    .dataframe th, .dataframe td, .sheet-table th, .sheet-table td { display: table-cell !important; padding: 0.25em !important; font-size: 0.8em !important; word-wrap: break-word !important; overflow-wrap: break-word !important; -webkit-hyphens: auto !important; hyphens: auto !important; vertical-align: top !important; }
    .equal-cols th:first-child, .equal-cols td:first-child { width: 35px !important; max-width: 35px !important; min-width: 35px !important; white-space: nowrap !important; vertical-align: middle !important; padding-left: 1.0em !important; padding-right: 0.2em !important; }
    .equal-cols th:nth-child(2), .equal-cols th:nth-child(3), .equal-cols th:nth-child(4), .equal-cols td:nth-child(2), .equal-cols td:nth-child(3), .equal-cols td:nth-child(4) { width: 30.67% !important; }
}
@media (max-width: 700px) {
    .dataframe, .sheet-table { width: calc(100% - 1.2rem) !important; font-size: 0.75em !important; margin: 0 0.6rem 1.5rem 0.6rem !important; table-layout: auto !important; display: table !important; }
    .dataframe th, .dataframe td, .sheet-table th, .sheet-table td { padding: 0.15em !important; font-size: 0.75em !important; }
    .equal-cols th:first-child, .equal-cols td:first-child { width: 30px !important; max-width: 30px !important; min-width: 30px !important; vertical-align: middle !important; padding-left: 0.8em !important; padding-right: 0.15em !important; }
    .equal-cols td:first-child.num-align { padding-left: 1.2em !important; padding-right: 1.2em !important; }
    .equal-cols th:nth-child(2), .equal-cols th:nth-child(3), .equal-cols th:nth-child(4), .equal-cols td:nth-child(2), .equal-cols td:nth-child(3), .equal-cols td:nth-child(4) { width: 30% !important; }
}
@media (max-width: 550px) {
    .dataframe, .sheet-table { width: calc(100% - 1.2rem) !important; font-size: 0.65em !important; margin: 0 0.6rem 1rem 0.6rem !important; }
    .dataframe th, .dataframe td, .sheet-table th, .sheet-table td { padding: 0.1em !important; font-size: 0.65em !important; line-height: 1.2 !important; }
    .equal-cols th:first-child, .equal-cols td:first-child { width: 25px !important; max-width: 25px !important; min-width: 25px !important; vertical-align: middle !important; padding-left: 0.6em !important; padding-right: 0.1em !important; }
    .equal-cols td:first-child.num-align { padding-left: 1.0em !important; padding-right: 1.0em !important; }
    .equal-cols th:nth-child(2), .equal-cols th:nth-child(3), .equal-cols th:nth-child(4), .equal-cols td:nth-child(2), .equal-cols td:nth-child(3), .equal-cols td:nth-child(4) { width: 29.33% !important; }
}

/* ========================= Unified Color Scheme Overrides ========================= */
/* Primary palette variables */
:root {
    --primary: #708AA7;            /* new brand green */
}

/* Landing squares and buttons */
.landing-link { background: var(--primary) !important; border-color: var(--primary) !important; }
.landing-field:nth-child(2) .landing-link { background: var(--primary) !important; border-color: var(--primary) !important; }
.portfolio-buttons button,
.portfolio-buttons .intro-button { background: var(--primary) !important; }
.portfolio-buttons a.uvod-btn,
.portfolio-buttons a.portfolio-btn { background: var(--primary) !important; border-color: var(--primary) !important; }
#floating-square { background: var(--primary) !important; }

/* Tables and headings */
.catalog-header-bar { background: var(--primary) !important; }
.header-green { background: var(--primary) !important; border-color: var(--primary) !important; }
.header-green td, .header-green th { border-color: var(--primary) !important; }
.phase-title { background: var(--primary) !important; border-color: var(--primary) !important; }
.phase-title td, .phase-title th { border-color: var(--primary) !important; }

/* Content accents */
.obsah-box { background: var(--primary) !important; border-color: var(--primary) !important; border-left-color: var(--primary) !important; }
.print-btn { background: var(--primary) !important; }
.content details { border-left-color: var(--primary) !important; }
.quote { border-left-color: var(--primary) !important; }
.message { border-left-color: var(--primary) !important; }
.email-highlight { color: var(--primary) !important; }
.vyvoj-text, .vyvoj-text-center, .vyvoj-middle, .vyvoj-middle-layout, .vyvoj-center-text, .center-big-a { color: var(--primary) !important; }

/* GA consent and password modal */
.ga-confirm-btn { background: #25303C !important; border-radius: 0 !important; padding: 14px 20px !important; }
.ga-confirm-btn:hover { background: #708AA7 !important; }
.password-input { border-color: #25303C !important; }
.password-button { background: #25303C !important; border-radius: 0 !important; }

/* Newsletter components */
.newsletter-popup-email:focus { border-color: #25303C !important; }
.newsletter-popup-submit { background: #25303C !important; }
.newsletter-popup-spinner { border-top-color: #25303C !important; }
.newsletter-popup-success.show,
.newsletter-popup-error.show {
    color: #25303C !important;
    border-color: rgba(191, 136, 82, 0.2) !important;
}

/* Legacy shadows using old pinkish tone -> subtle primary-tinted shadows */
/* (no change for .download-docx-btn shadows to avoid unintended contrast shifts) */

/* Kalkulator choice cards */
.choice-button { background: var(--primary) !important; border-color: var(--primary) !important; }

/* Value badge and slider cosmetics */
.value-display { background: var(--primary) !important; }
.slider-track-fill { background: var(--primary) !important; }
.slider::-webkit-slider-thumb { background: var(--primary) !important; border-color: var(--primary) !important; }
.slider::-moz-range-thumb { background: var(--primary) !important; border-color: var(--primary) !important; }

/* Radio controls */
.firm-size-radios input[type="radio"] { border-color: var(--primary) !important; box-shadow: 0 2px 8px rgba(69, 128, 95, 0.07) !important; }
.firm-size-radios input[type="radio"]:checked { background: var(--primary) !important; border-color: var(--primary) !important; }
input[type="range"], input[type="radio"], input[type="checkbox"] { accent-color: var(--primary) !important; }

/* Average rate row styled exactly like hourly rate rows */
.average-rate-row {
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    padding: 0.3rem 0;
    margin: 1.0rem 0 0 0 !important;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.average-rate-row .output-label {
    color: #444;
    font-weight: 400;
    font-size: 1rem;
    flex: 1;
    margin-right: 1.2rem;
}

.average-rate-row .output-value {
    color: #444;
    font-weight: 600;
    font-size: 1.08em;
    min-width: 60px;
    text-align: right;
    margin-left: 2.0rem;
}

/* ========================= Global Footer Theme ========================= */
footer {
    background: #0e0e0e !important;
    color: #fff !important;
    margin-top: 0 !important;
    font-size: 0.9rem;
    text-align: center;
    padding: 4rem 1rem;
}
footer * { color: #fff !important; }
footer a, footer a:visited, footer a:hover, footer a:active { color: #fff !important; }
footer .cc-icon { filter: invert(1); }

/* ================= Auth rectangular enforcement (final override) ================= */

/* Shared footer include (iframe host) */
footer.footer-host { 
    background: #0e0e0e !important; 
    padding: 0; 
    margin: 0; 
    min-height: fit-content;
    height: auto;
}
footer.footer-host .footer-frame {
    width: 100%;
    max-width: 100%;
    border: 0;
    display: block;
    overflow: hidden;
    height: 380px;          /* sensible fallback so content is visible even if postMessage fails */
    min-height: 280px;
    background: transparent;
}

/* Adjust footer frame height based on viewport for proper responsive behavior */
@media (max-width: 900px) {
    footer.footer-host .footer-frame {
        height: 510px;
        min-height: 460px;
    }
}

@media (max-width: 600px) {
    footer.footer-host .footer-frame {
        height: 560px;
        min-height: 510px;
    }
}

/* Footer 3-column layout + centered licence row */
.site-footer .footer-content { max-width: 850px; margin: 0 auto; }
.site-footer .footer-columns {
        display: grid;
        grid-template-columns: 1fr 25px 1fr 25px 1fr;
        gap: 0;
        align-items: start;
        margin-bottom: 1.25rem;
        text-align: left;
}
.site-footer .footer-col { min-width: 0; align-self: start; max-width: 90%; }
.site-footer .footer-col:nth-child(1) { grid-column: 1; }
.site-footer .footer-col:nth-child(2) { grid-column: 3; }
.site-footer .footer-col:nth-child(3) { grid-column: 5; }
.site-footer .footer-col p { font-size: 0.75rem; }
.site-footer .footer-col p.footer-tagline { font-size: 0.975rem; }
.site-footer .footer-logo { height: 25px; }
.site-footer .footer-link {
    color: #ffffff;
    text-decoration: none !important;
}
.site-footer .footer-link:hover {
    text-decoration: underline !important;
}
.site-footer .licence-section { display: flex; justify-content: center; align-items: center; text-align: center; font-size: 0.9rem; }
.site-footer .licence-left { margin: 0 auto; }

@media (max-width: 900px) {
    .site-footer .footer-columns { grid-template-columns: 1fr; }
    .site-footer .footer-col:nth-child(1) { grid-column: auto; }
    .site-footer .footer-col:nth-child(2) { grid-column: auto; margin-top: 2rem; }
    .site-footer .footer-col:nth-child(3) { grid-column: auto; margin-top: 2rem; }
    .site-footer .licence-left { font-size: 0.7rem; }
}
@media (min-width: 641px) {
    .site-footer .licence-section p { white-space: nowrap; }
}

/* Embedded pages keep the same 3/2/1 tile constraints via the unified rules above. */

/* AI Assistant page specific styling - make iframe container wider and centered */
body.page-ai-asistent {
    margin: 0;
    padding: 0;
    background: #222222;
}

/* Add larger gap below header specifically for AI assistant page */
body.page-ai-asistent .logo-header {
    margin-bottom: 2rem !important;
}

body.page-ai-asistent #iframe-asistent {
    width: 100%;
    min-height: 77vh;
    height: 77vh;
    border: none;
    display: block;
    background: #222222;
}

/* Make the main-content container wider and centered for AI assistant */
body.page-ai-asistent .main-content {
    max-width: 100vw !important;
    width: 100vw !important;
    margin: 0 auto 2rem auto !important;
    padding: 0 !important;
    box-sizing: border-box;
    background: #222222;
}

body.page-ai-asistent .main-content-index {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
}

/* Add grey gap between footer and AI assistant container */
body.page-ai-asistent .site-footer {
    margin-top: 0.5rem !important;
}

/* On mobile, make AI assistant container even wider and properly centered */
@media (max-width: 900px) {
    /* Larger gap below header on mobile */
    body.page-ai-asistent .logo-header {
        margin-bottom: 2.5rem !important;
    }
    
    body.page-ai-asistent .main-content {
        max-width: 100vw !important;
        width: 100vw !important;
        margin: 0 auto 1.5rem auto !important;
        padding: 0 !important;
        box-sizing: border-box;
        background: #222222;
    }
    
    body.page-ai-asistent .main-content-index {
        max-width: 100% !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        min-height: 0 !important;
    }
    
    body.page-ai-asistent #iframe-asistent {
        width: 100%;
        min-height: 77vh;
        height: 77vh;
        border: none;
        background: #222222;
    }
    
    body.page-ai_asistent .site-footer {
        margin-top: 1.5rem !important;
    }
}

/* Comprehensive mobile scaling for kalkulator3.html content */
@media (max-width: 900px) {
    .page-kalkulator .slider-panel,
    .page-factor-detail .slider-panel { 
        padding: 1rem 0.5rem;
        width: 100%;
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
    }
    /* Differentiate mobile scaling: keep main title larger, shrink subsections more */
    .page-kalkulator h1.main-title,
    .page-factor-detail .slider-panel header h1 { font-size: 1.4rem; }
    .page-kalkulator .slider-panel h2.main-title { font-size: 1.1rem; }
    .page-kalkulator .instruction-label-unified,
    .page-factor-detail .slider-panel header p { font-size: 0.9rem !important; }
    .page-kalkulator .slider-label .label-text { font-size: 1rem; }
    .page-kalkulator .slider-description { font-size: 0.65rem; }
    .page-kalkulator .slider-description span { white-space: nowrap; }
    .page-kalkulator .result-label-unified { font-size: 0.9rem !important; }
    .page-kalkulator .result-value-unified { font-size: 1.5rem !important; }
    
    /* Specific fixes for firm size radios and hourly rates */
    .page-kalkulator .firm-size-radio-label { 
        font-size: 0.8rem; 
        line-height: 1.2;
    }
    .page-kalkulator .firm-size-radio-row {
        margin-bottom: 0.5rem;
    }
    .page-kalkulator .hourly-rate-row { 
        font-size: 0.85rem; 
        padding: 0.5rem 0.5rem; 
    }
    .page-kalkulator .hourly-rate-row .output-value {
        margin-left: 0.5rem;
        font-size: 1rem;
    }
    .page-kalkulator .hourly-rate-row .output-label {
        margin-right: 0.5rem;
    }
}
/* Intro links styling - keep text black */
.intro-link {
    color: inherit;
    text-decoration: none;
}

.intro-link:hover,
.intro-link:active {
    color: inherit;
}
/* Floating Assistant Label */
.floating-assistant-label {
    position: fixed;
    bottom: 24px;
    right: 18px;
    background-color: #DB9B5B;
    color: #fff !important;
    padding: 12px 24px;
    border-radius: 999px;
    text-decoration: none !important;
    font-weight: 600;
    font-size: 0.95rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
    z-index: 10000;
    transition: transform 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.floating-assistant-label:hover {
    background-color: #DB9B5B;
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0,0,0,0.25);
    color: #fff !important;
}

@media (max-width: 900px) {
    .floating-assistant-label {
        bottom: 16px;
        right: 16px;
        padding: 10px 10px;
        font-size: 0.85rem;
    }
}

/* Plan Sluzieb New - RIBA Table Styles */
.plan-section-title {
    margin-top: 2.5rem;
    font-size: 1.4rem;
    color: #333;
}

.plan-table {
    margin-bottom: 2rem;
    width: 100%;
    table-layout: fixed;
}

.plan-phase-header {
    width: 10%;
    text-align: center;
}

.plan-phase-title-row {
    background: #f5f5f5;
}

.plan-phase-title-cell {
    padding: 0.75rem;
    text-align: center;
    border-right: 1px solid #ccc;
    font-size: 1.1rem;
}

.plan-phase-title-cell-last {
    padding: 0.75rem;
    text-align: center;
    font-size: 1.1rem;
}

.plan-label-header {
    width: 10%;
    background: #f8fafc;
    font-weight: 600;
    text-align: left;
    padding: 0.75rem;
    border-right: 1px solid #ccc;
}

.plan-label-col {
    width: 10%;
    padding: 0.75rem;
    font-weight: 700;
    vertical-align: top;
    text-align: left;
    border-right: 1px solid #ccc;
}

.plan-label-architect {
    background: #e8f0f8;
    border-bottom: 2px solid #708AA7;
}

.plan-label-gp {
    background: #f0f8e8;
    border-bottom: 2px solid #708AA7;
}

.plan-label-client {
    background: #fff8e8;
    border-bottom: 2px solid #d4a574;
}

.plan-row-white {
    background: #fff;
}

.plan-section-header-architect {
    padding: 0.5rem 0.75rem;
    font-weight: 600;
    background: #e8f0f8;
    border-bottom: 2px solid #708AA7;
}

.plan-section-header-gp {
    padding: 0.5rem 0.75rem;
    font-weight: 600;
    background: #f0f8e8;
    border-bottom: 2px solid #708AA7;
    margin-top: 1rem;
}

.plan-detail-cell {
    padding: 0.75rem;
    font-size: 0.8rem;
    border-right: 1px solid #ccc;
    vertical-align: top;
}

.plan-detail-cell-last {
    padding: 0.75rem;
    font-size: 0.8rem;
    vertical-align: top;
}

.plan-principles-title {
    margin-top: 2.5rem;
    font-size: 1.2rem;
    color: #333;
}

.plan-principles-list {
    margin-left: 1.5rem;
    line-height: 1.8;
}

.plan-info-box {
    margin-top: 2.5rem;
    padding: 1.5rem;
    background: #f0f4f8;
    border-left: 4px solid #708AA7;
    border-radius: 4px;
}

.plan-info-box-title {
    margin-top: 0;
    color: #333;
}

.plan-info-box-list {
    margin-bottom: 0;
    margin-left: 1.5rem;
}

.plan-back-section {
    margin: 3rem auto;
}
/* Print Button and Controls Styling */
.plan-table-controls {
    margin-bottom: 1.5rem;
    text-align: center;
}

.plan-print-btn {
    padding: 0.75rem 1.5rem;
    background: #708AA7;
    color: #fff;
    border: none;
    border-radius: 4px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.3s ease, transform 0.2s ease;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.plan-print-btn:hover {
    background: #5a6f8a;
    transform: translateY(-2px);
}

.plan-print-btn:active {
    transform: translateY(0);
}

.plan-print-btn span {
    font-size: 1.2rem;
}

/* Table Wrapper for Mobile Horizontal Scrolling */
.plan-table-wrapper {
    overflow-x: auto;
    margin-bottom: 2rem;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
}

/* Print Optimization */
@media print {
    body > * {
        display: none !important;
    }
    
    .plan-sluzieb-container {
        display: block !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    
    .plan-section-title {
        display: block !important;
        page-break-after: avoid;
        margin: 0 0 1rem 0;
        font-size: 1.2rem;
    }
    
    .plan-table-controls {
        display: none !important;
    }
    
    .plan-table-wrapper {
        display: block !important;
        overflow: visible !important;
        border: none !important;
        margin: 0 !important;
    }
    
    .plan-table {
        width: 100%;
        page-break-inside: avoid;
        margin: 0 !important;
        font-size: 0.85rem;
    }
    
    .plan-table td {
        page-break-inside: avoid;
    }
    
    .plan-detail-cell,
    .plan-detail-cell-last {
        padding: 0.5rem !important;
        font-size: 0.75rem !important;
        line-height: 1.3;
    }
    
    .plan-phase-title-cell,
    .plan-phase-title-cell-last {
        padding: 0.5rem !important;
        font-size: 0.9rem !important;
    }
    
    .plan-label-col,
    .plan-label-header {
        width: 10%;
        padding: 0.5rem !important;
        font-size: 0.85rem !important;
    }
    
    .plan-principles-title,
    .plan-principles-list,
    .plan-info-box,
    .plan-info-box-list {
        display: none !important;
    }
}

/* Privacy Policy Styles */
.privacy-policy-container {
    max-width: 900px;
    margin: 2rem auto;
    padding: 2rem;
    background: white;
    line-height: 1.6;
    font-family: Arial, sans-serif;
}

.privacy-policy-container .back-link {
    margin-top: 2rem;
    margin-bottom: 2rem;
}

.privacy-policy-container h1 {
    color: #333;
    margin-bottom: 0.5rem;
    font-size: 2.5rem;
    font-weight: 700;
}

.last-updated {
    color: #666;
    font-style: italic;
    margin-bottom: 2rem;
    font-size: 0.95rem;
}

.privacy-section {
    margin-bottom: 2.5rem;
}

.privacy-section h2 {
    color: #444;
    margin-top: 2rem;
    margin-bottom: 1rem;
    font-size: 1.8rem;
    font-weight: 700;
    border-bottom: 2px solid #eee;
    padding-bottom: 0.5rem;
}

.privacy-section h3 {
    color: #555;
    margin-top: 1.5rem;
    margin-bottom: 0.8rem;
    font-size: 1.3rem;
    font-weight: 600;
}

.privacy-section p {
    margin-bottom: 1rem;
    color: #333;
}

.privacy-section ul {
    margin-left: 2rem;
    margin-bottom: 1rem;
}

.privacy-section ul li {
    margin-bottom: 0.5rem;
    color: #333;
}

.privacy-section a {
    color: #0066cc;
    text-decoration: none;
}

.privacy-section a:hover {
    text-decoration: underline;
}

.privacy-policy-link {
    margin-top: 1rem;
    text-align: center;
}

.privacy-policy-link a {
    color: #666;
    text-decoration: none;
    font-size: 0.9rem;
}

.privacy-policy-link a:hover {
    color: #333;
    text-decoration: underline;
}

@media (max-width: 768px) {
    .privacy-policy-container {
        padding: 1rem;
        margin: 1rem;
    }
    
    .privacy-policy-container h1 {
        font-size: 2rem;
    }
    
    .privacy-section h2 {
        font-size: 1.5rem;
    }
    
    .privacy-section h3 {
        font-size: 1.2rem;
    }
}

/* FAQ page styles */
.faq-container {
  max-width: 800px;
  margin: 40px auto;
  padding: 0 20px;
}
.faq-item {
  margin-bottom: 15px;
  border-bottom: 1px solid #eee;
}
.faq-item summary {
  font-size: 1.25rem;
  font-weight: 600;
  color: #0e0e0e;
  padding: 20px 0;
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.faq-item summary::-webkit-details-marker {
  display: none;
}
.faq-item summary::after {
  content: "+";
  font-size: 1.5rem;
  color: #C1864B;
  transition: transform 0.2s ease;
}
.faq-item[open] summary::after {
  transform: rotate(45deg);
}
.faq-answer {
  color: #444;
  line-height: 1.7;
  padding-bottom: 20px;
}
.faq-title {
  font-size: 2.2rem;
  font-weight: 300;
  margin-bottom: 40px;
  text-align: left;
  color: #222;
  margin-top: 0.5em;
}
@media (max-width: 900px) {
  .faq-item summary { font-size: 1rem; padding: 14px 0; }
  .faq-item summary::after { font-size: 1.2rem; }
  .faq-answer { font-size: 0.95rem; }
  .faq-title { font-size: 1.4rem; margin-bottom: 20px; }
}
