/* Shared MKC proportions; castle colors remain independent. */
body:not(.home) .zamok-header,
body .zamok-header.is-scrolled,
body.has-open-menu .zamok-header {
    background: rgba(255, 255, 255, .94);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}
body.home:not(.has-open-menu) .zamok-header:not(.is-scrolled) {
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: none;
}
body.home:not(.has-open-menu) .zamok-header:not(.is-scrolled) .zamok-logo__text {
    color: #fff;
}
body .zamok-header .zamok-logo { width: 120px; gap: 7px; flex-shrink: 0; }
body .zamok-header .zamok-logo__mark { width: 44px; height: auto; }
body .zamok-header .zamok-logo__text {
    max-width: 70px;
    color: #111;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: 0;
}
body:not(.home) :is(.zamok-story-hero, .zamok-tpl-hero, .zamok-archive-header) h1,
body:not(.home) .site-main > .zamok-page-hero h1 {
    font-size: 72px !important;
    font-weight: 900 !important;
    line-height: 1.08 !important;
    letter-spacing: 0 !important;
    text-align: center;
    text-wrap: balance;
    max-width: 1120px;
}
body:not(.home) .zamok-story-hero__content { padding: 48px 0 !important; }
body:not(.home) .zamok-story-hero { align-items: center; }
body .zamok-story-hero:has(.zamok-section-video--hero) .zamok-story-hero__shade { background: rgba(0,0,0,.42); z-index: 1; }
body .zamok-story-hero__content { z-index: 2; }
body:not(.home) .zamok-story-hero p:not(.zamok-eyebrow) { font-size: 18px !important; }
.zamok-story-page :is(p, li) { text-align: left; }
body .zamok-source-copy .zamok-content { gap: 14px; }
body .zamok-source-copy .zamok-content :is(p, h2, h3) { margin: 0; }
body .zamok-story-page > .zamok-section { padding-top: 40px; padding-bottom: 40px; }
body .zamok-source-copy :is(.zamok-content, .zamok-story-split__content) :is(p, li),
body .zamok-story-intro__text p { font-size: 17px; line-height: 1.7; letter-spacing: 0; }
.zamok-source-copy :is(p, li) a, .zamok-contact a:not(.zamok-button) {
    color: #333;
    text-decoration: underline;
    text-decoration-color: var(--zamok-orange);
    text-underline-offset: 4px;
    overflow-wrap: anywhere;
}
.zamok-source-copy :is(p, li) a:hover, .zamok-contact a:not(.zamok-button):hover { color: var(--zamok-accent); }
body .zamok-story-split__grid,
body .zamok-story-split--reverse .zamok-story-split__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
    gap: 48px;
}
body.parent-pageid-19 .zamok-story-split__grid { align-items: center; }
body .zamok-story-split__content { min-width: 0; }
body .zamok-story-split__content :is(h2, h3) { font-size: 30px; line-height: 1.2; letter-spacing: 0; }
body .zamok-story-split__content p + p { margin-top: 16px; }
body .zamok-tpl-tables { align-items: start; }
body .zamok-tpl-table { height: auto; align-self: start; }
.zamok-equipment .zamok-story-split figure { aspect-ratio: auto; }
.zamok-equipment .zamok-story-split img { height: auto; object-fit: contain; }
.zamok-order-procedure { background: #f7f7f7; }
.zamok-order-procedure .zamok-source-copy { padding-top: 36px; padding-bottom: 36px; }
.zamok-order-procedure .zamok-content { max-width: none; }
.zamok-rental-contact .zamok-contact-card { max-width: 560px; }

.zamok-icon {
    display: inline-block;
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    vertical-align: middle;
    background: currentColor;
    mask: var(--zamok-icon) center / contain no-repeat;
    -webkit-mask: var(--zamok-icon) center / contain no-repeat;
}
.zamok-icon--map-pin { --zamok-icon: url('../icons/map-pin.svg'); }
.zamok-icon--phone { --zamok-icon: url('../icons/phone.svg'); }
.zamok-icon--mail { --zamok-icon: url('../icons/mail.svg'); }
.zamok-icon--clock { --zamok-icon: url('../icons/clock.svg'); }
.zamok-icon--at-sign { --zamok-icon: url('../icons/at-sign.svg'); }
.zamok-icon--pause { --zamok-icon: url('../icons/pause.svg'); }
.zamok-icon--play { --zamok-icon: url('../icons/play.svg'); }
.zamok-contact__overview, .zamok-contact__people { display: grid; gap: 18px; align-items: stretch; }
.zamok-contact__overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.zamok-contact__people { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.zamok-contact__billing { margin: 18px 0 36px; }
.zamok-contact-card {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    padding: 28px;
    border: 1px solid #ececec;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .035);
}
.zamok-contact-card > div { flex: 1; min-width: 0; }
body .zamok-contact-card h2 { margin: 0 0 14px; font-size: 28px; font-weight: 900; line-height: 1.18; letter-spacing: 0; }
body .zamok-contact__people h2 { font-size: 20px; }
body .zamok-contact-card p { margin: 8px 0; font-size: 15px; line-height: 1.6; color: #555; }
.zamok-contact-card .zamok-contact__icon { color: var(--zamok-accent); margin-top: 2px; width: 46px; height: 46px; flex-basis: 46px; display: grid; place-items: center; border-radius: 8px; background: #fff0df; }
.zamok-contact__icon .zamok-icon { width: 24px; height: 24px; }
.zamok-contact-hours { margin: 0; font-size: 15px; color: #555; }
.zamok-contact-hours div { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 4px 20px; margin: 0 0 8px; }
.zamok-contact-hours dd { margin: 0; font-weight: 700; white-space: nowrap; }
.zamok-contact__overview .zamok-contact-card > div { flex: 1; min-width: 0; }
.zamok-contact__billing p a { display: inline-block; margin-left: 10px; padding: 5px 12px; background: #fff0df; border-radius: 8px; font-size: 14px; font-weight: 700; }
.zamok-contact__invoice { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 32px; margin: 0 0 22px; }
.zamok-contact__invoice dt { font-size: 12px; font-weight: 700; color: #666; }
.zamok-contact__invoice dd { margin: 4px 0 0; font-size: 16px; font-weight: 800; overflow-wrap: anywhere; }
.zamok-contact__reservation { border-top: 1px solid #ddd; margin-top: 36px; padding-top: 32px; }
.zamok-contact__reservation .zamok-button { margin-top: 16px; }
body .zamok-contact-map { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
body .zamok-contact-map__content { padding: 32px; }
body .zamok-contact-map iframe { width: 100%; height: 100%; min-height: 380px; }
.zamok-contact-map__content p { margin: 14px 0; }
.zamok-contact-map__content .zamok-button { margin-top: 12px; }
.zamok-hours-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; align-items: stretch; }
.zamok-hours-layout figure { margin: 0; min-height: 0; border-radius: 8px; overflow: hidden; }
.zamok-hours-layout figure a { display: block; height: 100%; }
.zamok-hours-layout figure img { width: 100%; height: 100%; object-fit: cover; }
body .zamok-opening-table { width: 100%; border-collapse: collapse; margin: 0; font-size: 16px; }
.zamok-opening-table th, .zamok-opening-table td { padding: 14px 18px; border: 1px solid #eee; }
.zamok-opening-table thead { background: #fff0df; }
.zamok-opening-table tbody th { font-weight: 600; text-align: left; }
.zamok-opening-table td, .zamok-opening-table thead th:last-child { text-align: center; white-space: nowrap; }
.zamok-opening-table td { font-weight: 700; }
.zamok-contact .zamok-opening-table { font-size: 14px; }
.zamok-contact .zamok-opening-table :is(th, td) { padding: 6px 10px; }
.zamok-route figure { aspect-ratio: 9 / 16; width: min(100%, 360px); justify-self: center; box-shadow: 0 10px 30px rgba(0,0,0,.08); }
.zamok-route__recommendation { font-weight: 700; padding: 12px 16px; border-left: 3px solid var(--zamok-accent); background: #fff7ed; }
.zamok-route-caution .zamok-source-note__inner { border-left: 4px solid var(--zamok-accent); background: #fff7ed; padding: 24px 28px; }
.zamok-section-video { height: 100%; width: 100%; }
.zamok-section-video video, .zamok-route img.zamok-route-poster { display: block; width: 100%; height: 100%; object-fit: contain; }
.zamok-section-video--hero { position: absolute; inset: 0; }
.zamok-section-video--hero video { object-fit: cover; }
.zamok-video-toggle { position: absolute; right: 24px; bottom: 20px; z-index: 5; display: inline-grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid #fff; border-radius: 50%; background: rgba(0,0,0,.55); color: #fff; cursor: pointer; }
.zamok-video-toggle[hidden] { display: none; }
.zamok-story-hero__shade, .zamok-story-hero__content { pointer-events: none; }
.zamok-story-hero__content a { pointer-events: auto; }
body .zamok-home-quicklinks__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
body.home:not(.has-open-menu) .zamok-header:not(.is-scrolled) .zamok-menu > li > a,
body.home:not(.has-open-menu) .zamok-header:not(.is-scrolled) .zamok-header-socials a {
    color: #fff;
}
body .zamok-home-quicklinks a { justify-content: center; font-size: 15px; width: 100%; }
body .zamok-notice h3 { font-size: 20px; line-height: 1.3; }
body .zamok-notice p { font-size: 16px; line-height: 1.6; }
body :is(.zamok-card-grid--notices, .zamok-card-grid--oznam) { display: grid; grid-template-columns: 1fr; width: 100%; max-width: 1120px; margin: auto; gap: 20px; }
body :is(.zamok-card-grid--notices, .zamok-card-grid--oznam) > .zamok-card { width: 100%; min-height: 0; display: block; border-radius: 8px; }
body :is(.zamok-card-grid--notices, .zamok-card-grid--oznam) .zamok-card__body { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: 'title action' 'excerpt action'; align-items: center; gap: 12px 32px; min-height: 150px; padding: 28px; }
body :is(.zamok-card-grid--notices, .zamok-card-grid--oznam) :is(h2, h3) { grid-area: title; font-size: 24px; line-height: 1.25; margin: 0; }
body :is(.zamok-card-grid--notices, .zamok-card-grid--oznam) .zamok-card__excerpt { grid-area: excerpt; margin: 0; font-size: 17px; line-height: 1.6; max-width: 850px; }
body :is(.zamok-card-grid--notices, .zamok-card-grid--oznam) .zamok-card__more { grid-area: action; margin: 0; padding: 12px 0; background: none; box-shadow: none; border-radius: 0; color: #262626; border-bottom: 1px solid var(--zamok-accent); font-size: 16px; font-weight: 700; }
body :is(.zamok-card-grid--notices, .zamok-card-grid--oznam) .zamok-card__date { grid-column: 1; margin: 0; }
body .zamok-story__text > .zamok-button { margin-right: 14px; }
body .zamok-story-split figure:has(img[src*='/20260907/svadby/']) {
    width: min(100%, 420px);
    aspect-ratio: 4 / 5;
    justify-self: center;
}
body .zamok-story-split img[src*='/20260907/svadby/'] {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    object-fit: contain;
}
body .zamok-story :is(p, li) { font-size: 17px; line-height: 1.7; }

body .zamok-footer { background: #f1f1f1; color: #1f1f1f; padding: 0; font-size: 14px; line-height: 1.58; }
body .zamok-footer__grid { width: min(1200px, calc(100% - 48px)); grid-template-columns: 1.18fr 1.22fr 1fr .82fr; gap: 34px; padding: 46px 0 34px; }
body .zamok-footer h2 { font-size: 15px; font-weight: 900; line-height: 1.2; margin: 0 0 15px; letter-spacing: 0; }
body .zamok-footer :is(p, li, a, dt, dd) { font-size: 14px; line-height: 1.58; }
body .zamok-footer p { margin: 0 0 4px; }
body .zamok-footer ul { display: flex; flex-direction: column; align-items: flex-start; gap: 0; margin: 0; padding: 0; list-style: none; }
body .zamok-footer li { margin: 0; }
body .zamok-footer a { display: inline-flex; align-items: center; gap: 8px; min-height: 0; margin: 0 0 7px; color: #262626; text-decoration: none; border-bottom: 1px solid rgba(245,130,0,.25); }
body .zamok-footer a:hover { color: var(--zamok-accent); border-color: var(--zamok-accent); }
body .zamok-footer__contact { margin-top: 13px; }
body .zamok-footer .zamok-footer__row { display: flex; align-items: flex-start; gap: 9px; margin-bottom: 8px; }
.zamok-footer__row .zamok-icon { width: 16px; height: 16px; flex-basis: 16px; margin-top: 3px; color: var(--zamok-accent); }
body .zamok-footer__row a { margin-bottom: 0; overflow-wrap: anywhere; }
body .zamok-footer .zamok-socials { gap: 16px; margin-top: 12px; }
body .zamok-footer .zamok-socials a { margin: 0; border: 0; font-weight: 800; }
body .zamok-footer .zamok-socials svg { fill: var(--zamok-accent); }
body .zamok-footer .zamok-hours { display: block; margin: 0 0 14px; }
body .zamok-footer .zamok-hours div { display: flex; justify-content: space-between; gap: 16px; padding: 0; margin: 0; border: 0; min-height: 0; }
body .zamok-footer .zamok-hours :is(dt, dd) { padding: 0; margin: 0; }
body .zamok-footer .zamok-hours dd { white-space: nowrap; font-weight: 700; }

.zamok-reveal-ready { opacity: 1; }
.zamok-reveal-ready.is-revealed { animation: zamok-content-enter .55s ease both; }
@keyframes zamok-content-enter { from { opacity: .25; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@media (hover: hover) {
    .zamok-contact-card:hover, .zamok-loop-event:hover { box-shadow: 0 12px 30px rgba(245,130,0,.14); border-color: #f6c58e; }
}
@media (max-width: 1100px) {
    body:not(.home) :is(.zamok-story-hero, .zamok-tpl-hero, .zamok-archive-header) h1,
    body:not(.home) .site-main > .zamok-page-hero h1 { font-size: 52px !important; }
    body .zamok-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body .zamok-story-split__grid, body .zamok-story-split--reverse .zamok-story-split__grid { gap: 30px; }
    .zamok-contact__people { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
    body:not(.home) :is(.zamok-story-hero, .zamok-tpl-hero, .zamok-archive-header) h1,
    body:not(.home) .site-main > .zamok-page-hero h1 { font-size: 36px !important; }
    body .zamok-story-split__grid, body .zamok-story-split--reverse .zamok-story-split__grid,
    .zamok-contact__overview, .zamok-contact__invoice, .zamok-hours-layout, body .zamok-contact-map { grid-template-columns: 1fr; }
    body .zamok-story-split--reverse figure { order: 0; }
    .zamok-route figure { width: min(100%, 300px); }
    .zamok-contact-card { padding: 22px; gap: 14px; }
    body .zamok-contact-card h2 { font-size: 24px; }
    .zamok-hours-layout figure { aspect-ratio: 16 / 10; }
    body .zamok-home-quicklinks__grid { grid-template-columns: 1fr; gap: 0; }
    body .zamok-home-quicklinks a { justify-content: flex-start; }
    body .zamok-footer__grid { grid-template-columns: 1fr; gap: 30px; }
    body .zamok-footer .zamok-hours { max-width: 260px; }
    body .zamok-contact-map__content { padding: 24px; }
    body .zamok-story-split__content :is(h2, h3) { font-size: 26px; }
    body :is(.zamok-card-grid--notices, .zamok-card-grid--oznam) .zamok-card__body { grid-template-columns: 1fr; grid-template-areas: 'title' 'excerpt' 'action'; padding: 22px; }
    body :is(.zamok-card-grid--notices, .zamok-card-grid--oznam) .zamok-card__more { justify-self: start; }
}
@media (prefers-reduced-motion: reduce) {
    .zamok-reveal-ready, .zamok-reveal-ready.is-revealed { opacity: 1; transform: none; animation: none; transition: none; }
}
