/* ============================================================
   PORTFÓLIO
   Webové realizácie, fotografie a slider.
   ============================================================ */

/* ===== PORTFÓLIO — webové koncepty a fotografia ===== */
.av-portfolio-page {
    background: var(--black);
}

.av-portfolio-page .avpf-shell {
    width: 81.5%;
    max-width: 1560px;
    margin-inline: auto;
}

.av-portfolio-page .avpf-section {
    padding: clamp(5rem, 8vw, 9rem) 0;
    scroll-margin-top: 100px;
}

.av-portfolio-page .avpf-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
    align-items: end;
    gap: 4rem;
    margin-bottom: clamp(3rem, 5vw, 5rem);
}

.av-portfolio-page .avpf-heading h2 {
    margin: 0;
}

.av-portfolio-page .avpf-heading>p {
    max-width: 28rem;
    justify-self: end;
    margin: 0;
    color: #aaa;
    font-size: 1rem;
}

.av-portfolio-page .avpf-label {
    margin-bottom: 1.75rem;
    font: 500 .75rem/1.5 'Outfit', sans-serif;
    letter-spacing: .13em;
    color: var(--primary-light);
}

.av-portfolio-page :is(a, button, summary):focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 5px;
}

.av-portfolio-page button {
    font: inherit;
    cursor: pointer;
}

.av-portfolio-page [hidden] {
    display: none !important;
}

.av-portfolio-page .animate-on-scroll:focus-within {
    opacity: 1;
    transform: none;
}

/* WEB — celé mockupy, natívny swipe a manuálne ovládanie. */
.av-portfolio-page .avpf-projects {
    width: 100%;
    max-width: none;
    min-width: 0;
}

.av-portfolio-page .avpf-web {
    background: var(--off-white);
    color: var(--black);
}

.av-portfolio-page .avpf-web .avpf-label {
    color: var(--primary-dark);
}

.av-portfolio-page .avpf-web .avpf-heading>p {
    color: #626262;
}

.av-portfolio-page .avpf-track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 100%;
    gap: 2rem;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y pinch-zoom;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: var(--primary) transparent;
    padding-bottom: 1.25rem;
}

.av-portfolio-page .avpf-project {
    min-width: 0;
    scroll-snap-align: start;
    scroll-snap-stop: always;
}

.av-portfolio-page .avpf-mockup {
    display: block;
    position: relative;
    width: 100%;
    max-width: none;
    background: var(--black);
    overflow: hidden;
}

.av-portfolio-page .avpf-mockup img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1760 / 1174;
    transition: transform .8s var(--transition-smooth);
}

.av-portfolio-page .avpf-open {
    position: absolute;
    right: 1.25rem;
    bottom: 1.25rem;
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border: 1px solid #ffffff70;
    border-radius: 50%;
    background: #0a0a0ac9;
    color: var(--white);
    transition: background .25s, border-color .25s;
}

.av-portfolio-page .avpf-project-caption {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    padding: 2rem 0;
    border-bottom: 1px solid #0a0a0a30;
}

.av-portfolio-page .avpf-project-caption h3 {
    margin: 0;
    font: 500 clamp(2rem, 3.3vw, 4rem)/1.12 'Outfit', sans-serif;
    letter-spacing: -.04em;
}

.av-portfolio-page .avpf-project-caption>p {
    margin: 0;
    max-width: 32rem;
    justify-self: end;
    color: #626262;
    font-size: .95rem;
}

.av-portfolio-page .avpf-meta {
    margin: 0 0 .7rem;
    color: var(--primary-dark);
    font: 500 .65rem/1.5 'Outfit', sans-serif;
    letter-spacing: .09em;
}

.av-portfolio-page .avpf-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    margin-top: 1.5rem;
}

.av-portfolio-page .avpf-project-selectors {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem 1.5rem;
}

.av-portfolio-page .avpf-project-selectors button {
    border: 0;
    padding: .5rem 0;
    background: none;
    color: #707070;
    font: 500 .8rem/1.5 'Outfit', sans-serif;
    border-bottom: 1px solid transparent;
}

.av-portfolio-page .avpf-project-selectors button[aria-current="true"] {
    color: var(--black);
    border-color: var(--primary);
}

.av-portfolio-page .avpf-paging {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.av-portfolio-page .avpf-counter {
    min-width: 4rem;
    text-align: center;
    font: 400 .8rem/1.5 'Outfit', sans-serif;
    font-variant-numeric: tabular-nums;
}

.av-portfolio-page .avpf-round-button {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border-radius: 50%;
    border: 1px solid currentColor;
    background: transparent;
    color: inherit;
    transition: color .25s, background .25s, border-color .25s;
}

.av-portfolio-page .avpf-round-button:disabled {
    opacity: .25;
    cursor: default;
}

.av-portfolio-page .avpf-web-note {
    margin: 2rem 0 0;
    color: #707070;
    font-size: .8rem;
}

/* FOTOGRAFIA — veľké samostatné zábery; zvyšok výberu možno rozbaliť. */
.av-portfolio-page .avpf-photo-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: clamp(2rem, 4vw, 4rem) clamp(1rem, 2.5vw, 3rem);
}

.av-portfolio-page .avpf-photo {
    margin: 0;
    min-width: 0;
}

.av-portfolio-page .avpf-photo>a {
    display: block;
    position: relative;
    overflow: hidden;
    background: var(--dark);
}

.av-portfolio-page .avpf-photo img {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    transition: transform .8s var(--transition-smooth);
}

.av-portfolio-page .avpf-photo-grid>.avpf-photo:nth-child(3n + 2) {
    margin-top: 4rem;
}

.av-portfolio-page .avpf-photo .avpf-open {
    width: 36px;
    height: 36px;
    right: .85rem;
    bottom: .85rem;
}

.av-portfolio-page .avpf-photo .avpf-open svg {
    width: 18px;
    height: 18px;
}

.av-portfolio-page .avpf-more {
    position: relative;
    margin-top: clamp(3rem, 5vw, 5rem);
}

.av-portfolio-page .avpf-more[open] {
    padding-bottom: 6rem;
}

.av-portfolio-page .avpf-more[open]>summary {
    position: absolute;
    left: 0;
    bottom: 0;
    min-height: 44px;
}

.av-portfolio-page .avpf-more>summary {
    width: fit-content;
    display: flex;
    align-items: center;
    gap: 1.25rem;
    list-style: none;
    cursor: pointer;
    border-bottom: 1px solid #ffffff60;
    padding: .75rem 0;
    font: 500 1rem/1.4 'Outfit', sans-serif;
}

.av-portfolio-page .avpf-more>summary::-webkit-details-marker {
    display: none;
}

.av-portfolio-page .avpf-more>summary svg {
    transition: transform .3s;
}

.av-portfolio-page .avpf-more[open]>summary svg {
    transform: rotate(180deg);
}

.av-portfolio-page .avpf-more .avpf-less-label {
    display: none;
}

.av-portfolio-page .avpf-more[open] .avpf-more-label {
    display: none;
}

.av-portfolio-page .avpf-more[open] .avpf-less-label {
    display: inline;
}

.av-portfolio-page .avpf-more>.avpf-photo-grid {
    margin-top: 0;
}

.av-portfolio-page .avpf-more>summary:hover {
    color: var(--primary-light);
    border-color: var(--primary-light);
}

/* PREHLIADAČ — natívny dialog so zachovaním celého pomeru obrázka. */
.av-portfolio-page .avpf-viewer {
    width: min(1440px, 96vw);
    max-width: none;
    height: min(1000px, 94vh);
    height: min(1000px, 94dvh);
    max-height: none;
    margin: auto;
    padding: 0;
    border: 1px solid #ffffff30;
    background: var(--black);
    color: var(--white);
    overflow: hidden;
}

.av-portfolio-page .avpf-viewer::backdrop {
    background: rgba(0, 0, 0, .88);
}

.av-portfolio-page .avpf-viewer[open] {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
}

.av-portfolio-page .avpf-viewer-header,
.av-portfolio-page .avpf-viewer-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: .85rem 1.5rem;
}

.av-portfolio-page .avpf-viewer-header {
    border-bottom: 1px solid #ffffff20;
}

.av-portfolio-page .avpf-viewer-header h2 {
    margin: 0;
    font: 400 .8rem/1.4 'Outfit', sans-serif;
    letter-spacing: .08em;
}

.av-portfolio-page .avpf-viewer-stage {
    display: grid;
    place-items: center;
    min-height: 0;
    padding: 1rem;
}

.av-portfolio-page .avpf-viewer-stage img {
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: contain;
}

.av-portfolio-page .avpf-viewer-footer {
    border-top: 1px solid #ffffff20;
    justify-content: flex-end;
}

.av-portfolio-page .avpf-viewer-footer p {
    margin: 0;
    max-width: 65ch;
    color: #bbb;
    font-size: .85rem;
    line-height: 1.5;
}

.av-portfolio-page .avpf-viewer-footer .avpf-paging {
    flex-shrink: 0;
}

.av-portfolio-page .avpf-viewer .avpf-counter {
    width: auto;
    max-width: 15rem;
}

@media (hover: hover) and (pointer: fine) {
    .av-portfolio-page :is(.avpf-mockup, .avpf-photo > a):hover img {
        transform: scale(1.035);
    }

    .av-portfolio-page :is(.avpf-mockup, .avpf-photo > a):hover .avpf-open {
        background: var(--primary);
        border-color: var(--primary);
    }

    .av-portfolio-page .avpf-round-button:not(:disabled):hover {
        background: var(--primary);
        border-color: var(--primary);
        color: var(--white);
    }

    .av-portfolio-page .avpf-project-selectors button:hover {
        color: var(--primary-dark);
    }
}

@media (max-width: 900px) {
    .av-portfolio-page .avpf-shell {
        width: calc(100% - 64px);
    }

    .av-portfolio-page .avpf-heading {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .av-portfolio-page .avpf-heading>p {
        justify-self: start;
        max-width: 38rem;
    }

    .av-portfolio-page .avpf-photo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .av-portfolio-page .avpf-photo-grid>.avpf-photo:nth-child(3n + 2) {
        margin-top: 0;
    }

    .av-portfolio-page .avpf-photo-grid>.avpf-photo:nth-child(even) {
        margin-top: 3rem;
    }
}

@media (max-width: 767px) {
    .av-portfolio-page .avpf-shell {
        width: calc(100% - 40px);
    }

    .av-portfolio-page .avpf-section {
        padding-block: 4.5rem;
    }

    .av-portfolio-page .avpf-project-caption {
        grid-template-columns: 1fr;
        gap: 1rem;
        padding-block: 1.5rem;
    }

    .av-portfolio-page .avpf-project-caption>p {
        justify-self: start;
    }

    .av-portfolio-page .avpf-heading>p {
        font-size: .95rem;
    }

    .av-portfolio-page .avpf-label {
        font-size: .65rem;
        margin-bottom: 1.25rem;
    }

    .av-portfolio-page .avpf-controls {
        align-items: flex-start;
    }

    .av-portfolio-page .avpf-project-selectors {
        width: 100%;
    }

    .av-portfolio-page .avpf-viewer-header,
    .av-portfolio-page .avpf-viewer-footer {
        padding: .75rem;
        gap: 1rem;
    }

    .av-portfolio-page .avpf-viewer-footer {
        flex-direction: column;
        align-items: flex-start;
    }

    .av-portfolio-page .avpf-viewer-footer .avpf-paging {
        align-self: flex-end;
    }

    .av-portfolio-page .avpf-viewer-stage {
        padding: .5rem;
    }
}

@media (max-width: 479px) {
    .av-portfolio-page .avpf-photo-grid {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }

    .av-portfolio-page .avpf-photo-grid>.avpf-photo:nth-child(even) {
        margin-top: 0;
    }

    .av-portfolio-page .avpf-photo img {
        aspect-ratio: auto;
        object-fit: contain;
    }

    .av-portfolio-page .avpf-mockup .avpf-open {
        width: 36px;
        height: 36px;
        bottom: .65rem;
        right: .65rem;
    }
}

@media (max-width: 359px) {
    .av-portfolio-page .avpf-shell {
        width: calc(100% - 32px);
    }
}

@media (prefers-reduced-motion: reduce) {

    .av-portfolio-page *,
    .av-portfolio-page *::before,
    .av-portfolio-page *::after {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }

    .av-portfolio-page .animate-on-scroll {
        opacity: 1;
        transform: none;
    }
}

@media (scripting: none) {
    .av-portfolio-page .animate-on-scroll {
        opacity: 1;
        transform: none;
    }
}

/* ============================================================
   KONTAKT
   Formulár a kontaktné sekcie.
   ============================================================ */

/* ===== CONTACT HERO - Simple Style ===== */
.kontakt-btn-primary {
    background: var(--accent);
    color: var(--white);
    padding: 1rem 2.5rem;
    border-radius: 50px;
    font-family: 'Outfit', sans-serif;
    font-weight: 600;
    font-size: 1rem;
    border: 2px solid var(--accent);
    cursor: pointer;
    transition: all 0.3s var(--transition-smooth);
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.kontakt-btn-primary:hover {
    background: transparent;
    color: var(--accent);
    transform: translateY(-3px);
    box-shadow: 0 10px 30px rgba(255, 140, 66, 0.3);
}

/* ===== CONTACT FORM SECTION ===== */
.contact-form {
    background: var(--gray-dark);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 20px;
    padding: 3rem;
    position: relative;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.form-group.full-width {
    grid-column: 1 / -1;
    margin-bottom: 1.5rem;
}

.form-group label {
    font-family: 'Outfit', sans-serif;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--white);
}

.form-group label .required {
    color: var(--accent);
    margin-left: 0.2rem;
}

.form-group .form-hint {
    font-size: 0.8rem;
    color: var(--gray-light);
    font-style: italic;
    margin-top: 0.5rem;
}

/* Error messages above fields */
.error-message {
    display: none;
    font-size: 0.85rem;
    color: #FF5252;
    font-family: 'Inter', sans-serif;
    padding: 0.5rem 0.8rem;
    background: rgba(255, 82, 82, 0.08);
    border-radius: 8px;
    border-left: 3px solid #FF5252;
    margin-bottom: 0.3rem;
    animation: fadeInError 0.3s ease;
}

.error-message.visible {
    display: block;
}

@keyframes fadeInError {
    from {
        opacity: 0;
        transform: translateY(-5px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.form-group input,
.form-group select,
.form-group textarea {
    background: var(--black);
    border: 2px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    padding: 1rem 1.2rem;
    color: var(--white);
    font-family: 'Inter', sans-serif;
    font-size: 0.95rem;
    transition: all 0.3s var(--transition-smooth);
    outline: none;
    width: 100%;
}

.form-group input::placeholder,
.form-group textarea::placeholder {
    color: rgba(136, 136, 136, 0.6);
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 4px rgba(30, 136, 229, 0.1);
}

.form-group input.error,
.form-group select.error,
.form-group textarea.error {
    border-color: #FF5252;
    box-shadow: 0 0 0 4px rgba(255, 82, 82, 0.08);
}

.form-group select {
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 18px;
    padding-right: 3rem;
}

.form-group select option {
    background: var(--gray-dark);
    color: var(--white);
}

.form-group textarea {
    resize: vertical;
    min-height: 140px;
}

.form-submit {
    text-align: center;
    margin-top: 1rem;
}

.btn-submit {
    padding: 1rem 3rem;
    font-size: 1.05rem;
}

/* Success Message */
.form-success {
    display: none;
    text-align: center;
    padding: 3rem 2rem;
    background: var(--gray-dark);
    border-radius: 20px;
    border: 1px solid rgba(76, 175, 80, 0.2);
}

.form-success.visible {
    display: block;
    animation: fadeInUp 0.6s ease;
}

.success-icon {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, rgba(76, 175, 80, 0.15), rgba(76, 175, 80, 0.05));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    color: #4CAF50;
}

.form-success h3 {
    font-size: 1.5rem;
    color: var(--white);
    margin-bottom: 0.5rem;
}

.form-success p {
    color: var(--gray-light);
    font-size: 1rem;
}

/* ===== FAQ SECTION ===== */
.faq-item {
    background: var(--gray-dark);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 14px;
    overflow: hidden;
    transition: all 0.3s var(--transition-smooth);
}

.faq-item:hover {
    border-color: rgba(255, 255, 255, 0.1);
}

.faq-question {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.3rem 1.8rem;
    cursor: pointer;
    transition: all 0.3s;
}

.faq-question h4 {
    font-size: 1.05rem;
    color: var(--white);
    font-weight: 600;
    margin: 0;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
    .form-row {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .contact-form {
        padding: 1.8rem;
    }

    .faq-question {
        padding: 1.1rem 1.3rem;
    }

    .faq-question h4 {
        font-size: 0.95rem;
    }
}

/* ===== GDPR CHECKBOX STYLES ===== */
.gdpr-group {
    margin-bottom: 1.5rem;
}

.gdpr-checkbox-wrapper {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    padding: 1.2rem;
    background: transparent;
    border-radius: 12px;
    transition: all 0.3s var(--transition-smooth);
}

.gdpr-checkbox-wrapper:hover {
    border-color: rgba(255, 255, 255, 0.15);
    background: rgba(255, 255, 255, 0.02);
}

.gdpr-checkbox-wrapper input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 18px;
    height: 18px;
    min-width: 18px;
    min-height: 18px;
    border-radius: 4px;
    background: var(--black);
    cursor: pointer;
    position: relative;
    transition: all 0.3s var(--transition-smooth);
    margin-top: 2px;
}

.gdpr-checkbox-wrapper input[type="checkbox"]:hover {
    border-color: var(--accent);
}

.gdpr-checkbox-wrapper input[type="checkbox"]:checked {
    background: var(--accent);
    border-color: var(--accent);
}

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

.gdpr-checkbox-wrapper input[type="checkbox"].error {
    border-color: #FF5252;
    box-shadow: 0 0 0 3px rgba(255, 82, 82, 0.15);
}

.gdpr-checkbox-wrapper input[type="checkbox"]:focus {
    outline: none;
    box-shadow: 0 0 0 4px rgba(255, 140, 66, 0.15);
    border-color: var(--accent);
}

.gdpr-label {
    font-family: 'Inter', sans-serif;
    font-size: 0.9rem;
    color: var(--gray-light);
    line-height: 1.6;
    cursor: pointer;
    margin: 0;
    font-weight: 400;
}

.gdpr-label a {
    color: var(--accent);
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 500;
    transition: color 0.3s;
}

.gdpr-label a:hover {
    color: var(--accent-hover);
}

.gdpr-group .error-message {
    margin-top: 0.5rem;
    margin-left: 0;
}

/* GDPR error message positioning */
.gdpr-group .error-message {
    margin-top: 0.5rem;
    margin-left: 0;
}

/* ===== KONTAKT — úvod, svetlý formulár a otázky ===== */
.av-contact-page {
    background: var(--black);
}

.av-contact-page .avc-shell {
    width: 81.5%;
    max-width: 1560px;
    margin-inline: auto;
}

.av-contact-page :is(.avc-form-section, .avc-faq-section) {
    padding-block: clamp(5rem, 8vw, 9rem);
}

.av-contact-page .avc-form-section {
    background: var(--off-white);
    color: var(--black);
    scroll-margin-top: 100px;
}

.av-contact-page .avc-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
    align-items: end;
    gap: 4rem;
    margin-bottom: clamp(3.5rem, 6vw, 6rem);
}

.av-contact-page .avc-heading h2 {
    margin: 0;
}

.av-contact-page .avc-heading>p {
    margin: 0;
    max-width: 28rem;
    justify-self: end;
    font: 400 1rem/1.8 'Inter', sans-serif;
    color: #626262;
}

.av-contact-page .avc-label {
    margin: 0 0 1.75rem;
    font: 500 .75rem/1.5 'Outfit', sans-serif;
    letter-spacing: .13em;
    color: var(--primary-dark);
}

.av-contact-page .avc-form-layout {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.4fr);
    align-items: start;
    gap: clamp(2.5rem, 6vw, 7rem);
    width: 100%;
    margin-inline: auto;
}

.av-contact-page .avc-direct-aside {
    min-width: 0;
}

.av-contact-page .avc-direct-links {
    min-width: 0;
}

.av-contact-page .avc-contact-link {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding-block: .85rem;
    color: var(--black);
    font: 500 clamp(1rem, 1.55vw, 1.75rem)/1.4 'Outfit', sans-serif;
    border-bottom: 1px solid #0a0a0a20;
    overflow-wrap: anywhere;
    transition: color .25s, border-color .25s;
}

.av-contact-page .avc-contact-link span {
    color: var(--primary-dark);
    flex: 0 0 auto;
}

.av-contact-page .avc-contact-link:hover {
    color: var(--primary-dark);
    border-color: var(--primary);
}

.av-contact-page .avc-location {
    margin-top: 1.5rem;
    color: #626262;
    font-size: .85rem;
}

.av-contact-page .avc-note {
    margin-top: 1.5rem;
    padding-left: 1.5rem;
    border-left: 2px solid var(--accent);
}

.av-contact-page .avc-note h3 {
    font: 500 1.5rem/1.12 'Outfit', sans-serif;
    margin: 0 0 1rem;
    letter-spacing: -.03em;
}

.av-contact-page .avc-note p {
    color: #626262;
    font-size: .9rem;
    margin: 0;
    max-width: 45ch;
}

/* Preserved form structure; only its visual presentation changes. */
.av-contact-page .contact-form {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    min-width: 0;
    box-shadow: none;
}

.av-contact-page .form-row {
    gap: 1.75rem;
    margin-bottom: 2rem;
}

.av-contact-page .form-group {
    gap: .65rem;
    min-width: 0;
}

.av-contact-page .form-group.full-width {
    margin-bottom: 2rem;
}

.av-contact-page .form-group label {
    color: var(--black);
    font-weight: 500;
}

.av-contact-page .form-group :is(input:not([type="checkbox"]), select, textarea) {
    background-color: #ffffff80;
    color: var(--black);
    border: 1px solid #0a0a0a45;
    border-radius: 0;
    padding: 1rem;
    min-height: 54px;
    font-size: 1rem;
    transition: border-color .2s, background-color .2s, box-shadow .2s;
}

.av-contact-page .form-group select {
    padding-right: 3rem;
}

.av-contact-page .form-group select option {
    background: var(--off-white);
    color: var(--black);
}

.av-contact-page .form-group textarea {
    min-height: 180px;
}

.av-contact-page .form-group :is(input, textarea)::placeholder {
    color: #707070;
}

.av-contact-page .form-group :is(input, select, textarea):focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px #1e88e51c;
}

.av-contact-page .form-group :is(input, select, textarea).error {
    border-color: #b42318;
}

.av-contact-page .form-group .form-hint {
    font: 400 .8rem/1.6 'Inter', sans-serif;
    color: #626262;
}

.av-contact-page .error-message {
    color: #b42318;
    background: #b423180a;
    border-radius: 0;
    border-left-color: #b42318;
}

.av-contact-page .gdpr-checkbox-wrapper {
    padding: 0;
    border: 0;
    border-radius: 0;
    gap: .9rem;
    background: transparent;
}

.av-contact-page .gdpr-checkbox-wrapper input[type="checkbox"] {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    padding: 0;
    border-radius: 0;
    border: 1px solid #0a0a0a70;
    background: transparent;
}

.av-contact-page .gdpr-checkbox-wrapper input[type="checkbox"]:checked {
    background: var(--primary);
    border-color: var(--primary);
}

.av-contact-page .gdpr-checkbox-wrapper input[type="checkbox"].error {
    border-color: #b42318;
}

.av-contact-page .form-group .gdpr-label {
    font: 400 .85rem/1.7 'Inter', sans-serif;
    color: #525252;
}

.av-contact-page .gdpr-label a {
    color: var(--primary-dark);
}

.av-contact-page .form-submit {
    margin-top: 2.5rem;
    text-align: left;
}

.av-contact-page .btn-submit {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 3rem;
    min-width: 220px;
    padding: 1rem 1.5rem;
    border: 1px solid var(--black);
    border-radius: 0;
    background: var(--black);
    color: var(--white);
    font: 500 1rem/1.5 'Outfit', sans-serif;
    cursor: pointer;
    box-shadow: none;
    transition: background .25s, border-color .25s;
}

.av-contact-page .btn-submit:hover {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
    transform: none;
    box-shadow: none;
}

.av-contact-page .btn-submit:disabled {
    cursor: wait;
    opacity: .65;
}

.av-contact-page .form-success {
    border-radius: 0;
    background: #fff;
    color: var(--black);
}

.av-contact-page .form-success h3 {
    color: var(--black);
}

.av-contact-page .form-success p {
    color: #626262;
}

/* FAQ — native keyboard-accessible disclosures, initially closed. */
.av-contact-page .avc-faq-section {
    position: relative;
    background: radial-gradient(ellipse at 95% 95%, #1e88e515, transparent 50%), var(--black);
    color: var(--white);
}

.av-contact-page .avc-faq-section .avc-label {
    color: var(--primary-light);
}

.av-contact-page .avc-faq-section .avc-heading>p {
    color: #aaa;
}

.av-contact-page .avc-faq-list {
    max-width: 1080px;
    margin-inline: auto;
    border-bottom: 1px solid #ffffff30;
}

.av-contact-page .avc-faq-item {
    border-top: 1px solid #ffffff30;
}

.av-contact-page .avc-faq-item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 1.75rem 0;
    list-style: none;
    cursor: pointer;
    font: 500 clamp(1.15rem, 2vw, 1.7rem)/1.3 'Outfit', sans-serif;
    transition: color .25s;
}

.av-contact-page .avc-faq-item summary::-webkit-details-marker {
    display: none;
}

.av-contact-page .avc-faq-item summary>span {
    font-size: 1.7rem;
    color: var(--primary-light);
    transition: transform .3s;
}

.av-contact-page .avc-faq-item[open] summary>span {
    transform: rotate(45deg);
}

.av-contact-page .avc-faq-item summary:hover {
    color: var(--primary-light);
}

.av-contact-page .avc-faq-item>div {
    padding: 0 3rem 2rem 0;
    max-width: 780px;
}

.av-contact-page .avc-faq-item p {
    margin: 0;
    color: #aaa;
    font-size: .95rem;
}

.av-contact-page :is(a, button, summary, input, select, textarea):focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 4px;
}

@media (max-width: 1000px) {
    .av-contact-page .form-row {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .av-contact-page .avc-shell {
        width: calc(100% - 64px);
    }

    .av-contact-page .avc-form-layout {
        grid-template-columns: 1fr;
        gap: 3rem;
    }

    .av-contact-page .avc-direct-aside {
        padding-bottom: 2.5rem;
        border-bottom: 1px solid #0a0a0a30;
    }

    .av-contact-page .avc-heading {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .av-contact-page .avc-heading>p {
        justify-self: start;
        max-width: 38rem;
    }
}

@media (max-width: 767px) {
    .av-contact-page .avc-shell {
        width: calc(100% - 40px);
    }

    .av-contact-page :is(.avc-form-section, .avc-faq-section) {
        padding-block: 4.5rem;
    }

    .av-contact-page .contact-form {
        width: 100%;
    }

    .av-contact-page .avc-contact-link {
        font-size: clamp(1.1rem, 5vw, 1.6rem);
    }

    .av-contact-page .avc-note {
        margin-top: 2rem;
    }

    .av-contact-page .avc-note p {
        max-width: 40ch;
    }

    .av-contact-page .btn-submit {
        width: 100%;
    }

    .av-contact-page .avc-faq-item summary {
        gap: 1rem;
    }
}

@media (prefers-reduced-motion: reduce) {

    .av-contact-page .avc-faq-item summary>span,
    .av-contact-page .btn-submit {
        transition: none;
    }
}

/* ============================================================
   BLOG / ČLÁNKY
   Zoznam článkov a samostatné články; hollow font je v base.css.
   ============================================================ */

/* ============================================================
   AION JOURNAL — blog a stránky článkov.
   Farby a fonty sú zdedené z pôvodného vizuálneho systému.
   ============================================================ */
.av-journal-page {
    --journal-line: rgba(10, 10, 10, .17);
    --journal-paper: var(--off-white, #f5f5f5);
    background: var(--journal-paper);
}
.av-journal-shell {
    width: 81.5%;
    max-width: 1560px;
    margin-inline: auto;
}
.av-journal-page [hidden] { display: none !important; }
.av-journal-page a:focus-visible,
.av-journal-page button:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 6px;
}
.av-journal-page button { font: inherit; }

/* HERO — rozmery, gradient a hollow nadpis podľa VOP. */
.av-journal-page .page-hero {
    min-height: auto;
    padding: clamp(9rem, 13vw, 12rem) 9.25% clamp(4rem, 7vw, 7rem);
    background: #090909;
    text-align: left;
    position: relative;
    isolation: isolate;
    overflow: hidden;
}
.av-journal-page .page-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: radial-gradient(ellipse at 95% 10%, rgba(30,136,229,.13), transparent 55%),
        radial-gradient(ellipse at 100% 100%, rgba(255,140,66,.08), transparent 45%);
}
.av-journal-page .page-hero-content { max-width: 1560px; margin-inline: auto; width: 100%; }
.av-journal-page .breadcrumb { justify-content: flex-start; margin-bottom: 2.5rem; font-size: .75rem; }
.av-journal-page .page-hero-title {
    max-width: 1100px;
    font: 600 clamp(2.7rem, 6.6vw, 6.5rem)/1.04 'Outfit', sans-serif;
    letter-spacing: -.045em;
    color: var(--white);
    margin-bottom: 2rem;
    overflow-wrap: break-word;
}
.av-journal-page .page-hero-title .av-journal-outline {
    background: none;
    font-style: normal;
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: clamp(.55px, .021em, 1.5px) var(--white);
    display: block;
    color: transparent;
    font-family: "Montserrat", sans-serif;
    font-weight: 800;
    font-synthesis: none;
    font-size: .78em;
    letter-spacing: -.025em;
    line-height: 1.15;
    margin-top: .15em;
}
.av-journal-page .page-hero-subtitle {
    max-width: 620px;
    margin: 0;
    font: 400 1rem/1.8 'Inter', sans-serif;
    color: #b5b5b5;
}

/* HLAVNÝ ČLÁNOK — jedna veľká fotografia a editorial text. */
.av-journal-feature { padding-block: clamp(3rem, 6vw, 6rem); color: var(--black); }
.av-journal-kicker { margin-bottom: 1.5rem; font: 500 .74rem/1.5 'Outfit',sans-serif; letter-spacing: .12em; text-transform: uppercase; color: var(--primary-dark); }
.av-journal-feature-card { display: grid; grid-template-columns: 1.22fr 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; position: relative; }
.av-journal-image { overflow: hidden; background: #ddd; aspect-ratio: 16/11; margin: 0; }
.av-journal-image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .8s var(--transition-smooth); }
.av-journal-meta { display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; color: #606060; font: 400 .75rem/1.6 'Inter',sans-serif; }
.av-journal-meta .av-journal-category { color: var(--primary-dark); }
.av-journal-feature h2 { font: 500 clamp(2rem, 3.3vw, 3.9rem)/1.08 'Outfit',sans-serif; letter-spacing: -.04em; margin: 1.3rem 0; }
.av-journal-feature h2 a, .av-journal-card h3 a { color: inherit; text-decoration: none; }
.av-journal-stretched::after { content: ''; position: absolute; inset: 0; }
.av-journal-feature-copy > p { color: #555; font: 400 1rem/1.8 'Inter',sans-serif; max-width: 48ch; }
.av-journal-read { display: inline-flex; align-items: center; gap: 1.1rem; margin-top: 2rem; font: 500 .9rem/1.5 'Outfit',sans-serif; }
.av-journal-read svg { transition: transform .3s ease; }
.av-journal-feature-card:hover .av-journal-image img,
.av-journal-card:hover .av-journal-image img { transform: scale(1.045); }
.av-journal-feature-card:hover .av-journal-read svg,
.av-journal-card:hover .av-journal-read svg { transform: translate(3px,-3px); }
.av-journal-feature-card:hover h2,
.av-journal-card:hover h3 { color: var(--primary-dark); }

/* ARCHÍV — filtre, presný grid, postupné zobrazenie. */
.av-journal-archive { padding-block: 1rem clamp(4rem, 7vw, 7rem); color: var(--black); }
.av-journal-archive-head { border-top: 1px solid var(--journal-line); padding-top: 2rem; display: flex; align-items: baseline; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.av-journal-archive-head h2 { font: 500 clamp(1.6rem, 2.4vw, 2.4rem)/1.15 'Outfit',sans-serif; letter-spacing: -.03em; }
.av-journal-filters { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; }
.av-journal-filters button { border: 0; border-bottom: 1px solid transparent; background: none; color: #595959; padding: .65rem 0; cursor: pointer; font-size: .86rem; }
.av-journal-filters button[aria-pressed="true"] { color: var(--primary-dark); border-color: var(--primary-dark); }
.av-journal-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 3.5rem 2rem; }
.av-journal-card { grid-column: span 2; position: relative; min-width: 0; border-bottom: 1px solid var(--journal-line); padding-bottom: 1.8rem; }
.av-journal-card:nth-child(1), .av-journal-card:nth-child(2) { grid-column: span 3; }
.av-journal-card .av-journal-image { aspect-ratio: 16/10; margin-bottom: 1.5rem; }
.av-journal-card h3 { font: 500 clamp(1.4rem, 2vw, 2.05rem)/1.13 'Outfit',sans-serif; letter-spacing: -.03em; margin: .85rem 0; }
.av-journal-card > p { color: #555; font: 400 .94rem/1.8 'Inter',sans-serif; }
.av-journal-card .av-journal-read { margin-top: 1.4rem; }
.av-journal-archive-bottom { padding-top: 2.5rem; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; }
.av-journal-status, .av-journal-empty { color: #616161; font-size: .84rem; }
.av-journal-more { padding: .9rem 1.4rem; border: 1px solid #171717; background: transparent; color: #171717; cursor: pointer; transition: background .25s,color .25s; }
.av-journal-more:hover { background: #171717; color: #fff; }

/* ČLÁNOK — čitateľný stĺpec, obsah a súvisiace články. */
.av-journal-article .page-hero-title { font-size: clamp(2.4rem, 5.2vw, 5.3rem); max-width: 1080px; }
.av-journal-article .page-hero .av-journal-meta { margin-bottom: 1.3rem; color: #b5b5b5; }
.av-journal-article .page-hero .av-journal-category { color: var(--primary-light); }
.av-journal-article .page-hero-subtitle { max-width: 720px; }
.av-journal-cover { padding-block: clamp(2.5rem, 5vw, 5rem) 0; }
.av-journal-cover .av-journal-image { aspect-ratio: 2/1; }
.av-journal-reading { display: grid; grid-template-columns: minmax(150px, .65fr) minmax(0, 2fr); gap: clamp(2rem, 6vw, 7rem); max-width: 1160px; margin: auto; padding-block: clamp(3rem, 6vw, 6rem); align-items: start; }
.av-journal-toc { position: sticky; top: 110px; font: 400 .82rem/1.6 'Inter',sans-serif; }
.av-journal-toc h2 { font: 500 .8rem/1.4 'Outfit',sans-serif; letter-spacing: .1em; text-transform: uppercase; color: #555; margin-bottom: 1.2rem; }
.av-journal-toc ol { list-style: none; padding: 0; }
.av-journal-toc li { border-top: 1px solid var(--journal-line); }
.av-journal-toc a { display: block; padding: .8rem 0; color: #444; text-decoration: none; }
.av-journal-toc a:hover { color: var(--primary-dark); }
.av-journal-prose { color: #333; font: 400 1.05rem/1.85 'Inter',sans-serif; overflow-wrap: anywhere; }
.av-journal-prose > :first-child { margin-top: 0; }
.av-journal-prose h2 { color: #121212; font: 500 clamp(1.65rem,2.6vw,2.4rem)/1.16 'Outfit',sans-serif; letter-spacing: -.025em; margin: 2.6rem 0 1.1rem; scroll-margin-top: 120px; }
.av-journal-prose h3, .av-journal-prose h4 { color: #181818; font: 500 1.35rem/1.3 'Outfit',sans-serif; margin: 2rem 0 1rem; scroll-margin-top: 120px; }
.av-journal-prose p, .av-journal-prose ul, .av-journal-prose ol { margin: 0 0 1.4rem; }
.av-journal-prose ul, .av-journal-prose ol { padding-left: 1.4rem; }
.av-journal-prose li { margin: .5rem 0; }
.av-journal-prose a { color: var(--primary-dark); text-decoration: underline; text-underline-offset: 4px; }
.av-journal-prose img { display: block; max-width: 100%; height: auto; margin-block: 2rem; }
.av-journal-prose blockquote { margin: 2rem 0; padding: .4rem 0 .4rem 1.5rem; border-left: 2px solid var(--primary); font-size: 1.15em; }
.av-journal-prose pre { overflow: auto; padding: 1.25rem; background: #e8e8e8; }
.av-journal-prose table { display: block; overflow: auto; border-collapse: collapse; max-width: 100%; }
.av-journal-prose th, .av-journal-prose td { padding: .65rem; border: 1px solid var(--journal-line); }
.av-journal-related { padding-bottom: 5rem; color: var(--black); }
.av-journal-related h2 { border-top: 1px solid var(--journal-line); padding-top: 2rem; margin-bottom: 2rem; font: 500 2rem/1.15 'Outfit',sans-serif; }

/* KOMPAKTNÉ CTA — pôvodné tlačidlo s obálkou. */
.av-journal-page .av-journal-cta { min-height: 0; height: auto; padding: clamp(3.5rem,7vw,6rem) 9.25%; }
.av-journal-page .av-journal-cta h2 { font: 500 clamp(2rem,3.8vw,3.8rem)/1.1 'Outfit',sans-serif; letter-spacing: -.035em; }
.av-journal-page .av-journal-cta p { margin-bottom: 1.8rem; }

@media (max-width: 900px) {
    .av-journal-feature-card { gap: 2rem; }
    .av-journal-archive-head { display: block; }
    .av-journal-filters { margin-top: 1rem; }
    .av-journal-card { grid-column: span 3; }
    .av-journal-reading { grid-template-columns: 1fr; }
    .av-journal-toc { position: static; }
}
@media (max-width: 640px) {
    .av-journal-shell { width: 88%; }
    .av-journal-page .page-hero { padding: 8rem 6% 4rem; }
    .av-journal-page .breadcrumb { margin-bottom: 2rem; }
    .av-journal-feature-card { grid-template-columns: 1fr; }
    .av-journal-feature .av-journal-image { aspect-ratio: 4/3; }
    .av-journal-grid { grid-template-columns: 1fr; gap: 2.5rem; }
    .av-journal-card, .av-journal-card:nth-child(1), .av-journal-card:nth-child(2) { grid-column: auto; }
    .av-journal-archive-bottom { flex-wrap: wrap; }
    .av-journal-cover .av-journal-image { aspect-ratio: 4/3; }
    .av-journal-prose { font-size: 1rem; }
    .av-journal-page .av-journal-cta { padding: 3.5rem 6%; }
}
@media (prefers-reduced-motion: reduce) {
    .av-journal-page *, .av-journal-page *::before, .av-journal-page *::after { scroll-behavior: auto !important; }
    .av-journal-image img, .av-journal-read svg, .av-journal-more { transition: none; }
}

/* Bez JavaScriptu má článok zostať čitateľný bez prekrytia loaderom. */
html.no-js .av-journal-page .page-loader { display: none; }
