/*
Theme Name: Kreativní zážitky
Template: twentytwentyfive
Description: Child theme of Twenty Twenty-Five for Kreativní zážitky (workshops of studios in Josefov).
Version: 1.0.0
Text Domain: zazitky
*/

:root {
	--zz-radius: 14px;
	--zz-shadow: 0 1px 2px rgba(44, 44, 44, .06), 0 8px 24px rgba(44, 44, 44, .06);
	--zz-ease: cubic-bezier(.2, .7, .2, 1);
}

body { -webkit-font-smoothing: antialiased; }
img { height: auto; }
::selection { background: var(--wp--preset--color--blush); }

/* ------------------------------------------------------------ header */
.zz-header { position: sticky; top: 0; z-index: 50; background: color-mix(in srgb, var(--wp--preset--color--base) 92%, transparent); backdrop-filter: blur(8px); border-bottom: 1px solid transparent; }
.zz-header.is-scrolled { border-bottom-color: var(--wp--preset--color--line); }
.zz-brand { display: flex; align-items: center; gap: .7rem; text-decoration: none; color: var(--wp--preset--color--contrast); }
.zz-brand img { width: 46px; height: 46px; }
.zz-brand__name { font-size: .82rem; letter-spacing: .32em; line-height: 1.25; text-transform: uppercase; font-weight: 500; }
.zz-brand__name span { display: block; }
.zz-header .wp-block-navigation a { text-decoration: none; }
.zz-header .wp-block-navigation a:hover { color: var(--wp--preset--color--terracotta); }
.zz-header .wp-block-navigation .current-menu-item > a,
.zz-header .wp-block-navigation a[aria-current] { color: var(--wp--preset--color--terracotta); }
.zz-header .wp-block-button__link { padding: .7em 1.5em; }

/* ------------------------------------------------------------ helpers */
.zz-script { font-family: var(--wp--preset--font-family--script); font-weight: 400; letter-spacing: 0; line-height: 1.05; }
.zz-kicker, .zz-card__kicker { display: block; font-size: .72rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--wp--preset--color--terracotta); }
.zz-link { display: inline-flex; align-items: center; gap: .5em; font-size: .78rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--contrast); }
a.zz-link, .zz-more a { text-decoration: none; }
.zz-more a { font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--contrast); }
.zz-more a::after { content: " →"; }
.zz-arrow { display: inline-grid; place-items: center; width: 30px; height: 30px; border: 1px solid currentColor; border-radius: 50%; flex: none; transition: background .25s var(--zz-ease), color .25s var(--zz-ease), border-color .25s; }
.is-style-outline .wp-block-button__link, .wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; border: 1px solid currentColor; color: inherit; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--contrast); border-color: #fff; }

/* ------------------------------------------------------------ hero */
.zz-hero { position: relative; overflow: hidden; border-radius: 0 0 var(--zz-radius) var(--zz-radius); }
.zz-hero .wp-block-cover__background { background: linear-gradient(90deg, rgba(24, 32, 28, .85) 0%, rgba(24, 32, 28, .6) 40%, rgba(24, 32, 28, .05) 75%) !important; opacity: 1 !important; }
.zz-hero .wp-block-cover__inner-container { position: static; max-width: 640px; margin: 0 !important; }
.zz-hero .wp-block-cover__inner-container > * { position: relative; z-index: 2; }
.zz-hero h1 { color: #fff; max-width: 10ch; font-size: clamp(2.8rem, 6vw, 4.6rem); line-height: 1.02; }
.zz-hero .zz-script { color: #fff; font-size: clamp(2rem, 3.6vw, 2.9rem); transform: rotate(-4deg); transform-origin: left; margin-top: 1.4rem !important; margin-bottom: 1.6rem !important; }
.zz-hero p { color: rgba(255, 255, 255, .92); max-width: 34ch; }
.zz-hero::before, .zz-hero::after { content: ""; position: absolute; z-index: 1; pointer-events: none; background-size: contain; background-repeat: no-repeat; }
.zz-hero::before { width: clamp(120px, 16vw, 230px); aspect-ratio: 1; right: -40px; top: -50px; background-image: url(assets/img/blob-mustard.svg); opacity: .95; }
.zz-hero::after { width: clamp(160px, 20vw, 300px); aspect-ratio: 1; right: -80px; bottom: -120px; background-image: url(assets/img/blob-forest.svg); }
.zz-hero .zz-badge, .zz-badge { position: absolute; z-index: 2; right: clamp(1rem, 5vw, 4rem); bottom: clamp(1rem, 5vw, 3.5rem); width: 150px; height: 150px; border-radius: 50%; background: var(--wp--preset--color--base); display: grid; place-items: center; text-align: center; font-size: .66rem; font-weight: 600; letter-spacing: .26em; line-height: 2; text-transform: uppercase; color: var(--wp--preset--color--forest); box-shadow: var(--zz-shadow); }
@media (max-width: 781px) { .zz-hero .zz-badge { display: none; } .zz-hero .zz-script { margin-top: 1.6rem !important; } .zz-hero h1 { line-height: 1.08; } .zz-hero .wp-block-cover__background { background: linear-gradient(0deg, rgba(24, 32, 28, .9) 0%, rgba(24, 32, 28, .72) 100%) !important; } }

/* ------------------------------------------------------------ features strip */
.zz-features { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; border-bottom: 1px solid var(--wp--preset--color--line); }
.zz-feature { display: flex; align-items: center; gap: .8rem; padding: 1.4rem 1rem; text-decoration: none; color: var(--wp--preset--color--contrast); font-size: .68rem; font-weight: 600; letter-spacing: .14em; line-height: 1.5; text-transform: uppercase; }
.zz-feature + .zz-feature { border-left: 1px solid var(--wp--preset--color--line); }
.zz-feature svg { width: 30px; height: 30px; flex: none; color: var(--wp--preset--color--terracotta); }
a.zz-feature:hover { color: var(--wp--preset--color--terracotta); }
@media (max-width: 900px) { .zz-features { grid-template-columns: repeat(2, 1fr); } .zz-feature + .zz-feature { border-left: 0; } .zz-feature { border-top: 1px solid var(--wp--preset--color--line); } }

/* ------------------------------------------------------------ cards */
.zz-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 1.4rem; }
.zz-card { display: flex; flex-direction: column; background: var(--wp--preset--color--paper); border-radius: var(--zz-radius); overflow: hidden; text-decoration: none; color: var(--wp--preset--color--contrast); box-shadow: var(--zz-shadow); transition: transform .35s var(--zz-ease), box-shadow .35s var(--zz-ease); }
.zz-card:hover { transform: translateY(-4px); box-shadow: 0 2px 4px rgba(44, 44, 44, .06), 0 18px 40px rgba(44, 44, 44, .12); }
.zz-card__img { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--wp--preset--color--sage); }
.zz-card__img img, .zz-studio__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--zz-ease); }
.zz-card:hover .zz-card__img img, .zz-studio:hover .zz-studio__img img { transform: scale(1.04); }
.zz-thumb-placeholder { display: block; width: 100%; height: 100%; background: radial-gradient(circle at 30% 40%, var(--wp--preset--color--blush) 0 18%, transparent 19%), radial-gradient(circle at 70% 65%, var(--wp--preset--color--mustard) 0 14%, transparent 15%), var(--wp--preset--color--sage); }
.zz-card__body { display: flex; flex-direction: column; gap: .35rem; padding: 1.1rem 1.2rem 1.2rem; flex: 1; }
.zz-card__title { font-family: var(--wp--preset--font-family--heading); font-size: 1.3rem; line-height: 1.2; }
.zz-card__text { font-size: .88rem; color: var(--wp--preset--color--muted); line-height: 1.5; }
.zz-card__foot { margin-top: auto; padding-top: .8rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-size: .8rem; color: var(--wp--preset--color--muted); }
.zz-card:hover .zz-arrow, .zz-studio:hover .zz-arrow { background: var(--wp--preset--color--terracotta); border-color: var(--wp--preset--color--terracotta); color: #fff; }

.zz-studios { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.6rem; }
.zz-studio { display: flex; flex-direction: column; text-decoration: none; color: var(--wp--preset--color--contrast); }
.zz-studio__img { display: block; aspect-ratio: 5 / 4; overflow: hidden; border-radius: 48% 52% 12px 12px / 30% 30% 12px 12px; background: var(--wp--preset--color--sage); }
.zz-studio__body { display: flex; flex-direction: column; gap: .45rem; padding: 1.1rem .2rem 0; }
.zz-studio__title { font-family: var(--wp--preset--font-family--heading); font-size: 1.6rem; line-height: 1.15; }
.zz-studio .zz-link { margin-top: .4rem; }

/* ------------------------------------------------------------ sections */
.zz-atmo { position: relative; overflow: hidden; border-radius: var(--zz-radius); }
.zz-atmo__panel { position: relative; z-index: 2; background: var(--wp--preset--color--base); border-radius: 0 60% 60% 0 / 0 50% 50% 0; }
.zz-atmo .wp-block-column:last-child img { border-radius: var(--zz-radius); }
.zz-gift { position: relative; overflow: hidden; border-radius: var(--zz-radius); }
.zz-gift::after { content: ""; position: absolute; right: -30px; bottom: -40px; width: 180px; height: 260px; background: url(assets/img/sprig.svg) no-repeat center / contain; opacity: .35; transform: rotate(18deg); }
.zz-quote { position: relative; }
.zz-quote .zz-script { font-size: clamp(2rem, 3.4vw, 2.8rem); color: var(--wp--preset--color--forest); transform: rotate(-3deg); }
.zz-quote::after { content: ""; position: absolute; right: 0; top: 50%; width: 90px; height: 140px; transform: translateY(-50%); background: url(assets/img/sprig.svg) no-repeat center / contain; }

/* ------------------------------------------------------------ facts + dates */
.zz-facts { margin: 0; display: grid; gap: 0; background: var(--wp--preset--color--paper); border-radius: var(--zz-radius); padding: .4rem 1.4rem; box-shadow: var(--zz-shadow); }
.zz-facts > div { display: grid; grid-template-columns: 7.5rem 1fr; gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--wp--preset--color--line); }
.zz-facts > div:last-child { border-bottom: 0; }
.zz-facts dt { font-size: .7rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--muted); padding-top: .2em; }
.zz-facts dd { margin: 0; }
.zz-dates { display: grid; gap: .8rem; }
.zz-date { background: var(--wp--preset--color--paper); border-radius: var(--zz-radius); box-shadow: var(--zz-shadow); text-decoration: none; color: var(--wp--preset--color--contrast); }
.zz-date > summary, .zz-date__summary { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1.2rem; padding: 1rem 1.3rem; cursor: pointer; list-style: none; }
.zz-date > summary::-webkit-details-marker { display: none; }
.zz-date__when { font-weight: 600; min-width: 9rem; }
.zz-date__name { flex: 1; }
.zz-date__name small { color: var(--wp--preset--color--muted); }
.zz-date__price { color: var(--wp--preset--color--muted); }
.zz-date__cta { font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; background: var(--wp--preset--color--terracotta); color: #fff; border-radius: 999px; padding: .6em 1.3em; }
.zz-date[open] .zz-date__cta { background: var(--wp--preset--color--forest); }
.zz-date > :not(summary) { padding: 0 1.3rem 1.3rem; }
.zz-empty { color: var(--wp--preset--color--muted); }

/* ------------------------------------------------------------ page hero */
.zz-pagehead { position: relative; overflow: hidden; }
.zz-pagehead::after { content: ""; position: absolute; right: clamp(-60px, -2vw, 0px); top: -70px; width: 220px; height: 220px; background: url(assets/img/blob-mustard.svg) no-repeat center / contain; opacity: .55; }
.zz-pagehead > * { position: relative; z-index: 1; }
.zz-feature-img img { border-radius: var(--zz-radius); aspect-ratio: 16 / 9; object-fit: cover; width: 100%; }

/* ------------------------------------------------------------ footer */
.zz-footer { position: relative; overflow: hidden; }
.zz-footer a { color: inherit; text-decoration: none; }
.zz-footer a:hover { color: var(--wp--preset--color--mustard); }
.zz-footer .zz-brand { color: #fff; }
.zz-footer .zz-brand img { content: url(assets/img/logo-mark-light.svg); }
.zz-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .4rem; }
.zz-footer h2 { font-family: var(--wp--preset--font-family--body); font-size: .7rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--wp--preset--color--sage); }

/* ------------------------------------------------------------ reservation plugin skin */
.rapo-form-wrapper, .rapo-voucher-wrapper { font-family: var(--wp--preset--font-family--body) !important; }
.rapo-form-wrapper button[type=submit], .rapo-voucher-wrapper button[type=submit] { background: var(--wp--preset--color--terracotta) !important; border-radius: 999px !important; }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* ------------------------------------------------------------ commercial blocks */
.zz-card__img { position: relative; }
.zz-badge-mini { position: absolute; left: .8rem; top: .8rem; background: var(--wp--preset--color--mustard); color: var(--wp--preset--color--contrast); font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; padding: .4em .9em; border-radius: 999px; }
.zz-proof { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; text-align: center; }
.zz-proof strong { display: block; font-family: var(--wp--preset--font-family--heading); font-weight: 400; font-size: clamp(2rem, 3.5vw, 2.8rem); line-height: 1.1; color: var(--wp--preset--color--terracotta); }
.zz-proof span { font-size: .85rem; color: var(--wp--preset--color--muted); }
@media (max-width: 781px) { .zz-proof { grid-template-columns: repeat(2, 1fr); } }
.zz-event { position: relative; overflow: hidden; border-radius: var(--zz-radius); }
.zz-event::before { content: ""; position: absolute; left: -70px; top: -70px; width: 220px; height: 220px; background: url(assets/img/blob-mustard.svg) no-repeat center / contain; opacity: .9; }
.zz-event > * { position: relative; }
.zz-event .wp-block-column:last-child img { border-radius: 50% 50% var(--zz-radius) var(--zz-radius) / 34% 34% var(--zz-radius) var(--zz-radius); aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.zz-ticks { list-style: none; padding: 0; display: grid; gap: .55rem; }
.zz-ticks li { padding-left: 1.8rem; position: relative; }
.zz-ticks li::before { content: ""; position: absolute; left: 0; top: .35em; width: 1.05rem; height: 1.05rem; border-radius: 50%; background: var(--wp--preset--color--blush) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23C65B45' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center / 80% no-repeat; }
.has-forest-background-color .zz-ticks li::before { background-color: var(--wp--preset--color--base); }
.zz-styles { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1.4rem; }
.zz-style { position: relative; border-radius: var(--zz-radius); overflow: hidden; aspect-ratio: 4 / 5; color: #fff; display: flex; align-items: flex-end; background: var(--wp--preset--color--forest); box-shadow: var(--zz-shadow); }
.zz-style img, .zz-style .zz-thumb-placeholder { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.zz-style::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(24, 32, 28, .94) 0%, rgba(24, 32, 28, .75) 40%, rgba(24, 32, 28, 0) 75%); }
.zz-style__body { position: relative; z-index: 1; padding: 1.3rem; }
.zz-style__title { font-family: var(--wp--preset--font-family--heading); font-size: 1.45rem; line-height: 1.15; display: block; margin-bottom: .35rem; }
.zz-style__text { font-size: .86rem; line-height: 1.5; opacity: .92; }
.zz-steps { counter-reset: s; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.4rem; list-style: none; padding: 0; }
.zz-steps li { counter-increment: s; background: var(--wp--preset--color--paper); border-radius: var(--zz-radius); padding: 1.3rem; box-shadow: var(--zz-shadow); }
.zz-steps li::before { content: counter(s); display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: var(--wp--preset--color--terracotta); color: #fff; font-family: var(--wp--preset--font-family--heading); margin-bottom: .8rem; }
.zz-steps strong { display: block; font-family: var(--wp--preset--font-family--heading); font-weight: 400; font-size: 1.2rem; margin-bottom: .2rem; }

/* ------------------------------------------------------------ inquiry form */
.zz-form { background: var(--wp--preset--color--paper); border-radius: var(--zz-radius); padding: clamp(1.3rem, 4vw, 2.5rem); box-shadow: var(--zz-shadow); display: grid; gap: 1.1rem; scroll-margin-top: 100px; }
.zz-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.2rem; }
@media (max-width: 640px) { .zz-form__grid { grid-template-columns: 1fr; } }
.zz-form label { display: grid; gap: .35rem; font-size: .78rem; font-weight: 600; letter-spacing: .04em; color: var(--wp--preset--color--muted); }
.zz-form input[type=text], .zz-form input[type=email], .zz-form input[type=tel], .zz-form select, .zz-form textarea { font: inherit; font-size: 1rem; font-weight: 400; letter-spacing: 0; color: var(--wp--preset--color--contrast); background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 10px; padding: .7rem .85rem; width: 100%; box-sizing: border-box; }
.zz-form :focus-visible { outline: 2px solid var(--wp--preset--color--terracotta); outline-offset: 1px; }
.zz-form fieldset { border: 0; padding: 0; margin: 0; }
.zz-form legend { font-size: .78rem; font-weight: 600; letter-spacing: .04em; color: var(--wp--preset--color--muted); margin-bottom: .5rem; }
.zz-form__checks { display: flex; flex-wrap: wrap; gap: .5rem; }
.zz-form .zz-check { display: inline-flex; align-items: center; gap: .45rem; font-size: .9rem; font-weight: 500; letter-spacing: 0; color: var(--wp--preset--color--contrast); background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 999px; padding: .45rem .9rem; cursor: pointer; }
.zz-form .zz-check:has(input:checked) { background: var(--wp--preset--color--blush); border-color: var(--wp--preset--color--terracotta); }
.zz-form__foot { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.2rem; margin: .4rem 0 0; font-size: .85rem; color: var(--wp--preset--color--muted); }
.zz-form button { cursor: pointer; border: 0; }
.zz-form__error { background: #fbe9e5; color: #8a2e1c; border-radius: 10px; padding: .7rem 1rem; margin: 0; }
.zz-form--done { text-align: center; }
.zz-form--done .zz-script { font-size: 2.6rem; color: var(--wp--preset--color--terracotta); margin: 0; }
.zz-hp { position: absolute; left: -9999px; }

.wp-block-post-content > h2.wp-block-heading { margin-top: 3.5rem; }
.wp-block-post-content > h2.wp-block-heading:first-child { margin-top: 0; }
