/* =====================================================================
   COPÍKY — styly pro NATIVNÍ Divi moduly (hybridní varianta)
   Nezávislé na #copiky-site. Třídy přidávej modulům v Divi:
   Modul → záložka Pokročilé (Advanced) → CSS třída (CSS Class).
   ===================================================================== */

:root{
  --cp-deep:#160010; --cp-mid:#2a0a20;
  --cp-mag:#f400a7; --cp-mag-deep:#e00587; --cp-mag-dark:#b00370;
  --cp-yellow:#ffe100; --cp-white:#fff;
  --cp-muted:rgba(255,255,255,0.74); --cp-dim:rgba(255,255,255,0.5);
  --cp-border:rgba(255,255,255,0.12); --cp-glass:rgba(255,255,255,0.06);
}

/* ── Brandové pozadí celé stránky (fixní = levné na výkon) ── */
body{ background:var(--cp-deep); }
body::before{
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image:
    radial-gradient(circle at 8% -2%, rgba(244,0,167,0.24) 0%, transparent 34%),
    radial-gradient(circle at 92% 8%, rgba(224,5,135,0.18) 0%, transparent 34%),
    radial-gradient(circle at 50% 42%, rgba(176,3,112,0.13) 0%, transparent 46%),
    radial-gradient(circle at 4% 78%, rgba(244,0,167,0.16) 0%, transparent 36%),
    radial-gradient(circle at 96% 92%, rgba(255,225,0,0.05) 0%, transparent 32%),
    linear-gradient(180deg, var(--cp-deep) 0%, var(--cp-mid) 48%, var(--cp-deep) 100%);
}
/* obsah nad pozadím + průhledné kontejnery Divi */
#page-container, #et-main-area, #main-content, .et_builder_inner_content{ position:relative; z-index:1; background:transparent !important; }

/* ── Sekce ── */
.cp-section.et_pb_section{ background:transparent !important; position:relative; }
/* Menší odsazení mezi sekcemi (klient: zmenšit mezery) — laditelné na ONLINE konzultaci */
.cp-section.et_pb_section{ padding-top:52px !important; padding-bottom:52px !important; }
@media (max-width:768px){ .cp-section.et_pb_section{ padding-top:40px !important; padding-bottom:40px !important; } }
/* Decentní oddělovač sekcí (jemná čára na středu) */
.cp-section.et_pb_section::before{
  content:""; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:min(180px,42%); height:1px; pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);
}

/* ── Nadpis sekce (Text modul) ── */
.cp-head .et_pb_text_inner{ text-align:center; }
.cp-head .cp-eyebrow{ display:inline-flex; align-items:center; gap:10px; font-family:'Croissant One',cursive; color:var(--cp-yellow); font-size:1.15rem; text-shadow:0 2px 16px rgba(255,225,0,.4); margin-bottom:18px; }
.cp-head .cp-eyebrow::before, .cp-head .cp-eyebrow::after{ content:""; width:34px; height:2px; background:var(--cp-yellow); border-radius:2px; }
.cp-head .cp-title{ font-family:'Nunito',sans-serif; font-weight:900; font-size:clamp(2rem,4.5vw,3.2rem); line-height:1.08; color:#fff; letter-spacing:-1px; margin:0; }
.cp-head .cp-title em{ font-family:'Croissant One',cursive; font-style:normal; color:var(--cp-yellow); }
.cp-head .cp-sub{ color:var(--cp-muted); font-family:'Quicksand',sans-serif; font-size:clamp(1rem,1.6vw,1.12rem); margin-top:14px; }

/* ── Karta služby (třída na SLOUPCI) ── */
.cp-card.et_pb_column{
  background:var(--cp-glass) !important; border:1px solid var(--cp-border); border-radius:30px;
  padding:36px 26px !important; text-align:center;
  transition:transform .4s ease, background .4s ease, box-shadow .4s ease;
}
.cp-card.et_pb_column:hover{ transform:translateY(-10px); background:rgba(255,255,255,0.1) !important; box-shadow:0 30px 60px rgba(0,0,0,.55); }

/* ── Kulatý obrázek s barevným prstencem (Blurb: třída cp-svc + cp-ring-m/d/y) ── */
.cp-svc .et_pb_main_blurb_image{ display:inline-block !important; width:clamp(210px,26vw,260px); aspect-ratio:1; padding:7px; border-radius:50%; margin:0 auto 26px; }
.cp-svc .et_pb_image_wrap{ display:block; margin:auto; overflow:hidden; border-radius:50%; border:4px solid #0b0008; }
.cp-svc .et_pb_main_blurb_image img{ width:100%; height:100%; aspect-ratio:1; object-fit:cover; transition:transform .5s cubic-bezier(.2,.8,.2,1); }
.cp-ring-m .et_pb_main_blurb_image{ background:conic-gradient(from 220deg,var(--cp-mag),var(--cp-yellow),var(--cp-mag-deep)); }
.cp-ring-d .et_pb_main_blurb_image{ background:conic-gradient(from 40deg,var(--cp-yellow),var(--cp-mag),#000,var(--cp-mag-deep)); }
.cp-ring-y .et_pb_main_blurb_image{ background:conic-gradient(from 120deg,var(--cp-yellow),var(--cp-mag),var(--cp-yellow)); }
.cp-card.et_pb_column:hover .cp-svc .et_pb_main_blurb_image img{ transform:scale(1.06); }
.cp-svc .et_pb_blurb_container{ text-align:center !important; }
.cp-svc .et_pb_module_header{ color:#fff !important; font-family:'Nunito',sans-serif !important; font-weight:900 !important; font-size:clamp(1.3rem,2.2vw,1.6rem) !important; margin-bottom:12px !important; text-align:center !important; }
.cp-svc .et_pb_blurb_description{ color:var(--cp-muted) !important; font-family:'Quicksand',sans-serif !important; font-size:.98rem !important; text-align:center !important; }

/* ── "Pill" s výdrží (Text modul) ── */
.cp-pill .et_pb_text_inner{
  display:inline-flex; align-items:center; gap:8px; font-family:'Nunito',sans-serif; font-weight:800; font-size:.82rem;
  color:#ff8fd6; background:rgba(244,0,167,0.14); border:1px solid rgba(244,0,167,0.3);
  padding:8px 16px; border-radius:100px;
}
.cp-pill .et_pb_text_inner svg{ width:15px; height:15px; flex-shrink:0; }
.et_pb_button.cp-btn-sm{ padding:11px 22px !important; font-size:.9rem !important; }

/* ── Tlačítka — třída je přímo na <a class="et_pb_button …"> (proto SLOŽENÝ selektor) ── */
.et_pb_button.cp-btn, .et_pb_button.cp-btn-ghost, .et_pb_button.cp-btn-yellow{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  font-family:'Nunito',sans-serif !important; font-weight:800 !important; font-size:1rem !important;
  line-height:1 !important; letter-spacing:0 !important; padding:15px 30px !important;
  border-radius:100px !important; transition:all .3s cubic-bezier(.4,0,.2,1) !important;
}
/* vypnout výchozí Divi šipku (objevuje se na hover a posouvá text) */
.et_pb_button.cp-btn:after, .et_pb_button.cp-btn-ghost:after, .et_pb_button.cp-btn-yellow:after{
  display:none !important; content:"" !important; margin:0 !important;
}
.et_pb_button.cp-btn{ color:#fff !important; background:var(--cp-mag) !important; border:none !important; box-shadow:0 18px 44px rgba(244,0,167,.4) !important; }
.et_pb_button.cp-btn:hover{ background:var(--cp-mag-deep) !important; transform:translateY(-3px) !important; }
.et_pb_button.cp-btn-ghost{ color:#fff !important; background:rgba(255,255,255,.06) !important; border:1.5px solid rgba(255,255,255,.22) !important; }
.et_pb_button.cp-btn-ghost:hover{ background:rgba(255,255,255,.1) !important; border-color:var(--cp-mag) !important; transform:translateY(-3px) !important; }
.et_pb_button.cp-btn-yellow{ color:#1a0011 !important; background:var(--cp-yellow) !important; border:none !important; box-shadow:0 14px 34px rgba(255,225,0,.28) !important; }
.et_pb_button.cp-btn-yellow:hover{ transform:translateY(-3px) !important; }
/* Stálá šipka (jako v originálu) — třída cp-btn-arrow */
.et_pb_button.cp-btn-arrow:after{
  display:inline-block !important; opacity:1 !important; content:"" !important;
  width:18px !important; height:18px !important; margin:0 0 0 9px !important;
  position:static !important; transform:none !important; transition:transform .3s !important;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") no-repeat center/contain !important;
}
.et_pb_button.cp-btn-arrow:hover:after{ transform:translateX(3px) !important; }

/* ── HERO ── */
.cp-hero.et_pb_section{ padding-top:clamp(120px,16vh,170px) !important; }
.cp-hero .cp-eyebrow{ display:inline-flex; align-items:center; gap:10px; font-family:'Croissant One',cursive; color:var(--cp-yellow); font-size:1.15rem; text-shadow:0 2px 16px rgba(255,225,0,.4); margin-bottom:18px; }
.cp-hero .cp-eyebrow::before{ content:""; width:34px; height:2px; background:var(--cp-yellow); border-radius:2px; }
.cp-hero .cp-h1{ font-family:'Nunito',sans-serif; font-weight:900; font-size:clamp(2.6rem,6.4vw,5rem); line-height:.98; letter-spacing:-2px; color:#fff; margin:0 0 26px; }
.cp-hero .cp-h1 .line2{ display:inline-block; position:relative; }
.cp-hero .cp-h1 .brush{ color:var(--cp-yellow); text-shadow:0 0 34px rgba(255,225,0,.45); }
.cp-hero .cp-h1 .brush::after{ content:""; position:absolute; left:-4%; right:-4%; bottom:-6px; height:16px; background:linear-gradient(90deg,var(--cp-mag),var(--cp-yellow)); border-radius:40% 60% 55% 45%/60% 40% 60% 40%; transform:rotate(-1.2deg); opacity:.92; z-index:-1; }
.cp-hero .cp-lead{ color:var(--cp-muted); font-family:'Quicksand',sans-serif; font-size:clamp(1.05rem,1.7vw,1.22rem); margin:0 0 34px; max-width:520px; }
.cp-hero .cp-hero-cta{ display:flex; flex-wrap:wrap; gap:14px; }
/* 2 nativní tlačítka vedle sebe + statistiky */
.cp-hero-left .et_pb_button_module_wrapper{ display:inline-block; margin:0 14px 14px 0; }
.cp-hero .et_pb_row{ align-items:center; }

/* Foto hrdiny = NATIVNÍ Image modul (mění se přes Média), dekorace zůstává kódem */
.cp-hero-rightcol.et_pb_column{ position:relative; min-height:clamp(380px,42vw,540px); }
.cp-hero-rightcol .et_pb_code{ position:absolute !important; inset:0; z-index:1; margin:0 !important; }
.cp-hero-rightcol .et_pb_code .et_pb_code_inner,
.cp-hero-rightcol .et_pb_code .cps,
.cp-hero-rightcol .et_pb_code .hero-visual{ height:100%; }
.cp-hero-photo.et_pb_image{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:2; width:clamp(320px,42vw,480px) !important; max-width:90% !important; margin:0 !important; }
.cp-hero-photo .et_pb_image_wrap{ position:relative; display:block; border-radius:50%; box-shadow:0 30px 60px rgba(0,0,0,.55),0 0 70px rgba(244,0,167,.4); }
.cp-hero-photo .et_pb_image_wrap img{ width:100%; aspect-ratio:1; object-fit:cover; border-radius:50%; border:5px solid #fff; }
.cp-hero-photo .et_pb_image_wrap::after{ content:""; position:absolute; inset:-5px; border-radius:50%; border:2px solid var(--cp-yellow); animation:cp-spin 22s linear infinite; }

/* Plovoucí "chip" odznaky = NATIVNÍ Text moduly (text se edituje běžně) */
.cp-hero-rightcol .cp-chip{ position:absolute; z-index:4; width:auto; }
.cp-hero-rightcol .cp-chip-top{ top:4%; left:-4%; animation:cp-float 8s ease-in-out infinite; }
.cp-hero-rightcol .cp-chip-bot{ bottom:6%; right:-6%; animation:cp-float 10s ease-in-out infinite reverse; }
.cp-chip .et_pb_text_inner{ display:flex; align-items:center; gap:10px; white-space:nowrap; background:rgba(11,0,8,0.78); border:1px solid rgba(255,255,255,0.22); padding:11px 16px; border-radius:100px; box-shadow:0 10px 30px rgba(0,0,0,.4); font-family:'Nunito',sans-serif; font-weight:800; font-size:.86rem; color:#fff; }
.cp-chip .dot{ width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.cp-chip .dot svg{ width:15px; height:15px; }
.cp-chip-top .dot{ background:var(--cp-yellow); color:#1a0011; }
.cp-chip-bot .dot{ background:var(--cp-mag); color:#fff; }
@media (max-width:720px){ .cp-hero-rightcol .cp-chip{ display:none; } }

/* Obsahová řada: stejné boční odsazení jako .cp-container */
.cp-pad.et_pb_row{ padding-left:clamp(18px,5vw,40px) !important; padding-right:clamp(18px,5vw,40px) !important; }
/* Plná šířka (blobs, vlna) — bez max-width a paddingu */
.cp-full.et_pb_row{ width:100% !important; max-width:100% !important; padding:0 !important; }
.cp-full .et_pb_column{ padding:0 !important; }
.cp-hero-img img{ border-radius:50% !important; border:5px solid #fff; box-shadow:0 30px 60px rgba(0,0,0,.55),0 0 70px rgba(244,0,167,.4); object-fit:cover; }
.cp-stat .percent p,.cp-stat .percent-value{ color:var(--cp-yellow) !important; font-family:'Nunito',sans-serif !important; font-weight:900 !important; }
.cp-stat .title{ color:var(--cp-dim) !important; font-family:'Quicksand',sans-serif !important; }

/* ── Detailní bloky (Airbrush / Malba) + obecný "rich" obsah vlevo ── */
.cp-rich .et_pb_text_inner, .cp-rich .et_pb_text_inner p{ color:var(--cp-muted) !important; font-family:'Quicksand',sans-serif !important; font-size:clamp(1rem,1.6vw,1.12rem) !important; line-height:1.6 !important; }
.cp-rich .eyebrow{ display:inline-flex; align-items:center; gap:10px; font-family:'Croissant One',cursive; color:var(--cp-yellow) !important; margin-bottom:14px; font-size:1.15rem !important; text-shadow:0 2px 16px rgba(255,225,0,.4); }
.cp-rich .eyebrow::before{ content:""; width:34px; height:2px; background:var(--cp-yellow); border-radius:2px; flex-shrink:0; }
.cp-rich h2{ color:#fff !important; font-family:'Nunito',sans-serif; font-weight:900; font-size:clamp(2rem,4.5vw,3.2rem) !important; line-height:1.08; letter-spacing:-1px; margin:0 0 16px; }
.cp-rich h2 em{ font-family:'Croissant One',cursive; font-style:normal; color:var(--cp-yellow); }
.cp-detail-img img{ border-radius:50% !important; border:5px solid #fff; box-shadow:0 30px 60px rgba(0,0,0,.55); object-fit:cover; }
.cp-facts .et_pb_text_inner{ color:var(--cp-muted); }
.cp-facts .et_pb_text_inner ul,.cp-price-meta .et_pb_text_inner ul{ list-style:none; margin:0; padding:0; }
.cp-facts li,.cp-price-meta li{ display:flex; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px dashed var(--cp-border); font-family:'Quicksand',sans-serif; color:var(--cp-muted); font-size:.96rem; }
.cp-facts li strong,.cp-price-meta li strong{ color:#fff; }
/* Fakt jako SAMOSTATNÝ modul (duplikováním přidáš nový přes "+") */
.cp-fact-row .et_pb_text_inner{ padding:11px 0; border-bottom:1px dashed var(--cp-border); font-family:'Quicksand',sans-serif; font-size:.96rem; }
/* Divi občas obalí obsah do <p> (wpautop) — řešíme oba případy */
.cp-fact-row .et_pb_text_inner, .cp-fact-row .et_pb_text_inner > p{ display:flex; justify-content:space-between; align-items:baseline; gap:14px; margin:0; }
.cp-fact-row .et_pb_text_inner > p{ width:100%; padding:0; border:0; }
.cp-fact-row span{ color:var(--cp-dim); }
.cp-fact-row strong{ color:#fff; font-weight:800; text-align:right; }
/* skrýt prázdné <p>, které občas přidá Divi (např. za eyebrow) */
.cp-rich .et_pb_text_inner p:empty, .cp-fact-row .et_pb_text_inner p:empty{ display:none !important; }

/* Koláž 3 fot vlevo = NATIVNÍ Image moduly (mění se přes Média) */
.cp-detail-media.et_pb_column{ position:relative; min-height:clamp(380px,42vw,520px); }
.cp-detail-media .et_pb_image{ position:absolute; margin:0 !important; }
.cp-detail-media .et_pb_image .et_pb_image_wrap{ display:block; border-radius:50%; }
.cp-detail-media .et_pb_image img{ width:100%; aspect-ratio:1; object-fit:cover; border-radius:50%; border:4px solid #fff; box-shadow:0 30px 60px rgba(0,0,0,.55); }
.cp-sd-lg{ width:62% !important; top:0; left:6%; z-index:3; }
.cp-sd-md{ width:44% !important; right:0; bottom:-6%; z-index:2; }
.cp-sd-md img{ border-color:var(--cp-yellow) !important; }
.cp-sd-sm{ width:33% !important; left:0; bottom:0%; z-index:2; }

/* ── Features / cenové varianty (Blurb s ikonou) ── */
.cp-feat .et_pb_blurb{ background:var(--cp-glass); border:1px solid var(--cp-border); border-radius:18px; padding:26px 24px; height:100%; }
.cp-feat .et_pb_main_blurb_image .et-pb-icon{ color:#fff !important; background:var(--cp-mag); border-radius:14px; width:54px !important; height:54px !important; line-height:54px !important; }
.cp-feat .et_pb_module_header{ color:#fff !important; font-family:'Nunito',sans-serif !important; font-weight:800 !important; font-size:1.08rem !important; }
.cp-feat .et_pb_blurb_description{ color:var(--cp-muted) !important; font-family:'Quicksand',sans-serif !important; }

/* ── Ceník ── */
.cp-price.et_pb_column{ position:relative; background:var(--cp-glass) !important; border:1px solid var(--cp-border); border-radius:30px; padding:30px 24px !important; text-align:center; transition:transform .4s ease, box-shadow .4s ease; }
.cp-price.et_pb_column:hover{ transform:translateY(-8px); box-shadow:0 30px 60px rgba(0,0,0,.55); }
.cp-price-feat.et_pb_column{ background:linear-gradient(160deg,var(--cp-mag-deep),#6e0345) !important; border:1px solid rgba(255,255,255,.18); }
.cp-price-img img{ width:clamp(150px,18vw,200px); height:clamp(150px,18vw,200px); border-radius:50% !important; object-fit:cover; border:3px solid rgba(255,255,255,.5); margin:0 auto; }
.cp-price-feat .cp-price-img img{ border-color:var(--cp-yellow); }
.cp-price-title .et_pb_text_inner, .cp-price-title .et_pb_text_inner h3{ color:#fff !important; font-family:'Nunito',sans-serif !important; font-weight:900 !important; font-size:1.3rem !important; text-align:center !important; margin:0 !important; line-height:1.2; }
.cp-price-meta .et_pb_text_inner{ color:var(--cp-muted); font-family:'Quicksand',sans-serif; text-align:left; }
.cp-price-meta li{ font-size:.88rem !important; padding:7px 0 !important; }
.cp-price-feat .cp-price-meta li{ border-color:rgba(255,255,255,.22); color:rgba(255,255,255,.85); }
/* cena */
.cp-price-val .et_pb_text_inner{ text-align:center; margin-top:6px; }
.cp-price-val .lbl{ display:block; font-family:'Nunito',sans-serif; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:1.5px; color:var(--cp-dim); margin-bottom:4px; }
/* cena drží na JEDNOM řádku i pro čtyř/pětimístné částky (10 000 – 11 000 Kč) a nerozšiřuje box */
.cp-price-val .v{ display:inline-block; max-width:100%; white-space:nowrap; letter-spacing:-0.3px; font-family:'Nunito',sans-serif; font-weight:900; font-size:clamp(1.05rem,1.85vw,1.4rem); color:var(--cp-yellow); }
.cp-price.et_pb_column{ min-width:0; }
.cp-price-feat .cp-price-val .v{ color:#fff; }
.cp-price-feat .cp-price-val .lbl{ color:rgba(255,255,255,.7); }
/* odznak Premium */
.cp-price-tag .et_pb_text_inner{ position:absolute; top:18px; right:18px; background:var(--cp-yellow); color:#1a0011; font-family:'Nunito',sans-serif; font-weight:900; font-size:.7rem; text-transform:uppercase; letter-spacing:1px; padding:5px 13px; border-radius:100px; }
/* poznámka */
.cp-note .et_pb_text_inner{ display:flex; gap:18px; align-items:center; color:var(--cp-muted); font-family:'Quicksand',sans-serif; font-size:.94rem; background:var(--cp-glass); border:1px solid var(--cp-border); border-radius:18px; padding:22px 26px; }
.cp-note .n-ico{ flex-shrink:0; width:46px; height:46px; border-radius:50%; background:var(--cp-mag); display:grid; place-items:center; }
.cp-note .n-ico svg{ width:22px; height:22px; stroke:#fff; fill:none; stroke-width:2; }
.cp-note p{ margin:0; }
.cp-note strong{ color:#fff; }

/* ── Galerie ── */
.cp-gal img{ border-radius:18px !important; object-fit:cover; width:100%; aspect-ratio:1; }

/* ── Festivaly ── */
.cp-fest .et_pb_row{ background:linear-gradient(150deg,rgba(244,0,167,0.16),rgba(176,3,112,0.08)); border:1px solid rgba(255,255,255,0.22); border-radius:30px; padding:clamp(34px,5vw,60px) !important; }
.cp-fest-img img{ border-radius:50% !important; border:4px solid #fff; object-fit:cover; }
.cp-tags .et_pb_text_inner span{ display:inline-block; background:rgba(244,0,167,0.16); color:#ff8fd6; border:1px solid rgba(244,0,167,0.4); font-family:'Nunito',sans-serif; font-weight:800; font-size:.76rem; text-transform:uppercase; letter-spacing:1px; padding:8px 16px; border-radius:100px; margin:4px 6px 4px 0; }

/* ── Reference (recenze) ── */
.cp-tcard.et_pb_column{ background:var(--cp-glass) !important; border:1px solid var(--cp-border); border-radius:30px; padding:32px 28px !important; }
.cp-stars .et_pb_text_inner{ color:var(--cp-yellow); letter-spacing:3px; font-size:1.05rem; }
.cp-quote .et_pb_text_inner{ color:var(--cp-muted); font-family:'Quicksand',sans-serif; font-size:.98rem; line-height:1.6; }
.cp-tcard .et_pb_main_blurb_image img{ width:50px !important; height:50px !important; border-radius:50% !important; border:2px solid var(--cp-mag); object-fit:cover; }
.cp-tcard .et_pb_module_header{ color:#fff !important; font-family:'Nunito',sans-serif !important; }
.cp-tcard .et_pb_blurb_description{ color:var(--cp-dim) !important; font-family:'Quicksand',sans-serif !important; }

/* ── FAQ (accordion / toggle) ── */
.cp-faq .et_pb_toggle{ background:var(--cp-glass) !important; border:1px solid var(--cp-border) !important; border-radius:18px !important; margin-bottom:14px !important; }
.cp-faq .et_pb_toggle_title{ color:#fff !important; font-family:'Nunito',sans-serif !important; font-weight:800 !important; font-size:clamp(1rem,1.8vw,1.12rem) !important; }
.cp-faq .et_pb_toggle_content, .cp-faq .et_pb_toggle_content p{ color:var(--cp-muted) !important; font-family:'Quicksand',sans-serif !important; font-size:.96rem !important; line-height:1.6; }
.cp-faq .et_pb_toggle_open{ background:rgba(255,255,255,0.1) !important; border-color:var(--cp-mag-dark) !important; }

/* ── Galerie — mřížka Image modulů (přidáš/ubereš duplikací modulu) ── */
.cp-gallery-grid.et_pb_column{ display:grid !important; grid-template-columns:repeat(4,1fr); gap:clamp(12px,2vw,18px); grid-auto-flow:dense; width:100% !important; }
.cp-gallery-grid .et_pb_module{ margin:0 !important; }
.cp-gallery-grid .et_pb_image{ aspect-ratio:1; overflow:hidden; border-radius:18px; background:linear-gradient(140deg,var(--cp-mag),#2d0021); box-shadow:0 10px 30px rgba(0,0,0,.4); }
.cp-gallery-grid .et_pb_image .et_pb_image_wrap{ display:block; width:100%; height:100%; }
.cp-gallery-grid .et_pb_image img{ width:100%; height:100%; object-fit:cover; border-radius:18px; transition:transform .6s cubic-bezier(.2,.8,.2,1); }
.cp-gallery-grid .et_pb_image:hover img{ transform:scale(1.08); }
/* Velikost dlaždice = kombinace tříd na obrázku (Divi → Pokročilé → CSS třída):
   cp-col-N  … šířka (kolik SLOUPCŮ zabere, 1–4)
   cp-row-N  … výška (kolik ŘÁDKŮ zabere, 1–4)
   Příklady:  cp-col-2 cp-row-2 = velký 2×2 · cp-col-2 = široký · cp-row-2 = vysoký.
   Stačí měnit čísla. Dense flow mezery sám zaplní. */
.cp-gallery-grid .cp-col-1{ grid-column:span 1; }
.cp-gallery-grid .cp-col-2{ grid-column:span 2; }
.cp-gallery-grid .cp-col-3{ grid-column:span 3; }
.cp-gallery-grid .cp-col-4{ grid-column:span 4; }
.cp-gallery-grid .cp-row-1{ grid-row:span 1; }
.cp-gallery-grid .cp-row-2{ grid-row:span 2; }
.cp-gallery-grid .cp-row-3{ grid-row:span 3; }
.cp-gallery-grid .cp-row-4{ grid-row:span 4; }
/* jakmile dlaždice zabírá víc než 1 pole, vypni čtvercový poměr, ať vyplní plochu */
.cp-gallery-grid .cp-col-2, .cp-gallery-grid .cp-col-3, .cp-gallery-grid .cp-col-4,
.cp-gallery-grid .cp-row-2, .cp-gallery-grid .cp-row-3, .cp-gallery-grid .cp-row-4{ aspect-ratio:auto !important; }
/* responzivně ořež šířku, ať se velká dlaždice nevejde mimo mřížku */
@media (max-width:980px){
  .cp-gallery-grid.et_pb_column{ grid-template-columns:repeat(3,1fr); }
  .cp-gallery-grid .cp-col-4{ grid-column:span 3; }
}
@media (max-width:600px){
  .cp-gallery-grid.et_pb_column{ grid-template-columns:repeat(2,1fr); }
  .cp-gallery-grid .cp-col-3, .cp-gallery-grid .cp-col-4{ grid-column:span 2; }
}

/* ── Festivaly — koláž fot vpravo jako NATIVNÍ Image moduly ── */
.cp-fest-media.et_pb_column{ position:relative; min-height:clamp(340px,38vw,460px); }
.cp-fest-media .et_pb_image{ position:absolute; margin:0 !important; }
.cp-fest-media .et_pb_image img{ width:100%; aspect-ratio:1; object-fit:cover; border-radius:50%; border:4px solid #fff; box-shadow:0 30px 60px rgba(0,0,0,.4); }
.cp-e1{ width:58% !important; top:2%; left:0; z-index:3; }
.cp-e2{ width:42% !important; top:26%; right:2%; z-index:2; }
.cp-e2 img{ border-color:var(--cp-yellow) !important; }
.cp-e3{ width:32% !important; bottom:2%; left:22%; z-index:4; }
.cp-rich .et_pb_text_inner p.callout{ color:var(--cp-yellow) !important; font-weight:700; }
.cp-fest.et_pb_section{ padding-left:clamp(18px,5vw,40px); padding-right:clamp(18px,5vw,40px); }
.cp-fest-copy .et_pb_button_module_wrapper{ display:inline-block; margin:0 12px 12px 0; }

/* ── Reference — autor (Blurb) vodorovně: avatar vlevo, jméno/role vpravo ── */
.cp-tcard .et_pb_blurb_content{ display:flex; align-items:center; gap:14px; text-align:left; }
.cp-tcard .et_pb_main_blurb_image{ margin:0 !important; }
.cp-tcard .et_pb_blurb_container{ text-align:left; }
.cp-tcard .et_pb_module_header{ font-size:1rem !important; margin:0 !important; }
.cp-tcard .et_pb_blurb_description{ font-size:.82rem !important; }

/* ── Kontaktní formulář ── */
.cp-contact-info .et_pb_text_inner{ color:var(--cp-muted); font-family:'Quicksand',sans-serif; }
.cp-contact-info h2{ color:#fff; font-family:'Nunito',sans-serif; font-weight:900; }
.cp-contact-info h2 em{ font-family:'Croissant One',cursive; font-style:normal; color:var(--cp-yellow); }
/* Kontaktní info (Text modul) */
.cp-contact-info .cp-eyebrow{ display:inline-flex; align-items:center; gap:10px; font-family:'Croissant One',cursive; color:var(--cp-yellow); font-size:1.15rem; text-shadow:0 2px 16px rgba(255,225,0,.4); margin-bottom:16px; }
.cp-contact-info .cp-eyebrow::before{ content:""; width:34px; height:2px; background:var(--cp-yellow); border-radius:2px; }
.cp-contact-info h2{ font-size:clamp(2rem,4.4vw,3rem); line-height:1.06; letter-spacing:-1px; margin:0 0 16px; }
.cp-contact-info .et_pb_text_inner > p{ font-size:clamp(1rem,1.6vw,1.1rem); max-width:460px; }
.cp-contact-info .contact-methods{ display:flex; flex-direction:column; gap:16px; margin-top:30px; }
.cp-contact-info .contact-methods a, .cp-contact-info .contact-methods .cm{ display:flex; align-items:center; gap:14px; font-family:'Nunito',sans-serif; font-weight:800; color:#fff; text-decoration:none; transition:transform .3s; }
.cp-contact-info .contact-methods a:hover{ transform:translateX(4px); }
.cp-contact-info .cm-ico{ width:46px; height:46px; border-radius:50%; background:var(--cp-mag); display:grid; place-items:center; flex-shrink:0; box-shadow:0 18px 44px rgba(244,0,167,.4); }
.cp-contact-info .cm-ico svg{ width:20px; height:20px; stroke:#fff; fill:none; stroke-width:2; }
.cp-contact-info .contact-methods small{ display:block; color:var(--cp-dim); font-family:'Quicksand',sans-serif; font-weight:600; font-size:.78rem; margin-top:2px; }

/* Karta s formulářem + nativní Divi Contact Form */
.cp-formcard.et_pb_column{ background:var(--cp-glass) !important; border:1px solid rgba(255,255,255,.22); border-radius:30px; padding:clamp(26px,3.5vw,40px) !important; box-shadow:0 30px 60px rgba(0,0,0,.55); }
.cp-form-title .et_pb_text_inner h3{ color:#fff; font-family:'Nunito',sans-serif; font-weight:900; font-size:1.4rem; margin:0 0 6px; }
.cp-form-title .et_pb_text_inner .of-sub{ color:var(--cp-muted); font-family:'Quicksand',sans-serif; font-size:.92rem; margin:0; }
.cp-form .et_pb_contact_form_label{ display:block !important; color:var(--cp-muted) !important; font-family:'Nunito',sans-serif; font-weight:700; font-size:.82rem; margin-bottom:7px; }
/* rovnoměrné mezery mezi poli (flex místo Divi floatů) */
.cp-form .et_pb_contact_form{ display:flex; flex-wrap:wrap; column-gap:4%; }
.cp-form .et_pb_contact_field{ padding:0 !important; margin:0 0 16px !important; background:transparent !important; float:none !important; width:100% !important; }
.cp-form .et_pb_contact_field.et_pb_contact_field_half{ width:48% !important; }
.cp-form .et_contact_bottom_container{ width:100%; margin-top:2px; }
@media (max-width:600px){ .cp-form .et_pb_contact_field.et_pb_contact_field_half{ width:100% !important; } }
.cp-form input,.cp-form textarea,.cp-form select{ background:rgba(255,255,255,0.05) !important; border:1.5px solid var(--cp-border) !important; border-radius:12px !important; color:#fff !important; font-family:'Quicksand',sans-serif !important; padding:13px 15px !important; }
.cp-form input::placeholder,.cp-form textarea::placeholder{ color:var(--cp-dim); }
.cp-form textarea{ min-height:110px !important; max-height:340px; resize:vertical !important; }
.cp-form .et_pb_button{ width:100%; margin-top:6px; padding:14px 28px !important; background:var(--cp-mag) !important; border:none !important; border-radius:100px !important; color:#fff !important; font-family:'Nunito',sans-serif !important; font-weight:800 !important; }
.cp-form .et_pb_button:hover{ background:var(--cp-mag-deep) !important; }
.cp-form .et_pb_contact_message, .cp-form .et-pb-contact-message{ color:#fff !important; }

/* ── Footer ── */
.cp-footer.et_pb_section{ background:#050003 !important; border-top:1px solid var(--cp-border); }
.cp-footer .et_pb_text_inner{ color:var(--cp-muted); font-family:'Quicksand',sans-serif; }
.cp-footer .et_pb_text_inner a{ color:var(--cp-muted); transition:color .25s; }
.cp-footer .et_pb_text_inner a:hover{ color:#fff; }
.cp-footer .et_pb_text_inner h5{ color:var(--cp-yellow); font-family:'Nunito',sans-serif; font-weight:900; text-transform:uppercase; letter-spacing:1.5px; font-size:.8rem; margin-bottom:14px; }
.cp-foot-logo img{ height:46px; width:auto; }
.cp-footer .footer-brand p{ color:var(--cp-muted); font-size:.95rem; max-width:320px; margin:14px 0 22px; }
/* sociální ikony */
.cp-footer .footer-socials{ display:flex; gap:12px; }
.cp-footer .footer-socials a{ width:44px; height:44px; border-radius:50%; background:var(--cp-glass); border:1px solid var(--cp-border); display:grid; place-items:center; transition:.3s; }
.cp-footer .footer-socials a:hover{ background:var(--cp-mag); transform:translateY(-4px); border-color:transparent; }
.cp-footer .footer-socials svg{ width:19px; height:19px; fill:#fff; }
/* sloupce */
.cp-footer .footer-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:13px; }
.cp-footer .footer-col a, .cp-footer .footer-col li{ color:var(--cp-muted); font-size:.95rem; }
.cp-footer .footer-contact li{ display:flex; align-items:center; gap:12px; }
.cp-footer .footer-contact .ci{ width:18px; height:18px; stroke:var(--cp-mag); fill:none; stroke-width:2; flex-shrink:0; }
/* horní část + spodní plaška */
.cp-foot-top.et_pb_row{ border-bottom:1px solid var(--cp-border); padding-bottom:44px !important; }
.cp-footer .footer-bottom{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:14px; }
.cp-footer .footer-bottom p{ color:var(--cp-dim); font-size:.85rem; margin:0; }
.cp-footer .footer-bottom .legal{ display:flex; gap:22px; flex-wrap:wrap; }
.cp-footer .footer-bottom .legal span, .cp-footer .footer-bottom .legal a{ color:var(--cp-dim); font-size:.82rem; text-decoration:none; transition:color .25s; }
.cp-footer .footer-bottom .legal a:hover{ color:#fff; }
.cp-footer .footer-bottom .legal a.credit:hover{ color:#ffe100; }


/* ============ HERO — dekorace 1:1 (kódové moduly, obal .cps) ============ */
.cps{
  --magenta:#ef009b;--magenta-bright:#f400a7;--magenta-deep:#e00587;--magenta-darker:#b00370;
  --maroon:#2d0021;--black:#0b0008;--white:#fff;--yellow:#ffe100;--yellow-soft:#fff7b3;
  --text:#fff;--text-muted:rgba(255,255,255,0.74);--text-dim:rgba(255,255,255,0.5);
  --border:rgba(255,255,255,0.12);--border-strong:rgba(255,255,255,0.22);
  --glass:rgba(255,255,255,0.06);--glass-hover:rgba(255,255,255,0.1);
  --r-lg:30px;--r-md:18px;--r-sm:12px;--pill:100px;
  --shadow-soft:0 10px 30px rgba(0,0,0,0.4);--shadow-deep:0 30px 60px rgba(0,0,0,0.55);
  --shadow-pink:0 18px 44px rgba(244,0,167,0.5);--glow-pink:0 0 70px rgba(244,0,167,0.4);--glow-yellow:0 0 60px rgba(255,225,0,0.35);
  --font-display:'Croissant One',cursive;--font-head:'Nunito',sans-serif;--font-body:'Quicksand',sans-serif;
  font-family:var(--font-body);color:var(--text);line-height:1.6;position:relative;
}

.cps .cp-blobs{
    position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden;
    
    background-color: var(--bg-deep);
    background-image:
        radial-gradient(circle at 8% -2%, rgba(244,0,167,0.24) 0%, transparent 34%),
        radial-gradient(circle at 92% 8%, rgba(224,5,135,0.18) 0%, transparent 34%),
        radial-gradient(circle at 50% 42%, rgba(176,3,112,0.13) 0%, transparent 46%),
        radial-gradient(circle at 4% 78%, rgba(244,0,167,0.16) 0%, transparent 36%),
        radial-gradient(circle at 96% 92%, rgba(255,225,0,0.05) 0%, transparent 32%),
        linear-gradient(180deg, var(--bg-deep) 0%, var(--bg-mid) 48%, var(--bg-deep) 100%);
    transform: translateZ(0);
}
.cps .cp-blob{ position: absolute; border-radius: 50%; filter: blur(85px); will-change: transform; }
.cps .cp-blob.b1{ top: 2%; left: -8%; width: 460px; height: 460px; background: var(--magenta-bright); opacity: 0.26; animation: cp-float 19s ease-in-out infinite; }
.cps .cp-blob.b2{ top: 30%; right: -10%; width: 560px; height: 560px; background: var(--magenta-deep); opacity: 0.22; animation: cp-float 24s ease-in-out infinite reverse; }
.cps .cp-blob.b3{ top: 64%; left: -12%; width: 500px; height: 500px; background: var(--magenta-darker); opacity: 0.26; animation: cp-float 21s ease-in-out infinite; animation-delay: -7s; }
.cps .cp-blob.b4{ top: 88%; right: -6%; width: 420px; height: 420px; background: var(--magenta-bright); opacity: 0.2; animation: cp-float 26s ease-in-out infinite reverse; animation-delay: -3s; }
.cps .cp-blob.by{ top: 46%; left: 48%; width: 320px; height: 320px; background: var(--yellow); opacity: 0.07; animation: cp-float 30s ease-in-out infinite; animation-delay: -11s; }
.cps .cp-circle{ position: relative; border-radius: 50%; overflow: hidden; background: linear-gradient(140deg, var(--magenta-bright), var(--magenta-darker)); }
.cps .cp-circle img{ width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.8,.2,1), opacity .3s; }
.cps .cp-circle img.img-failed{ opacity: 0; }
.cps .hero-stats{ display: flex; flex-wrap: wrap; gap: clamp(20px,4vw,44px); margin-top: 44px; padding-top: 30px; border-top: 1px solid var(--border); }
.cps .hero-stat .num{ font-family: var(--font-head); font-weight: 900; font-size: clamp(1.7rem,3vw,2.3rem); color: var(--white); line-height: 1; }
.cps .hero-stat .num span{ color: var(--yellow); }
.cps .hero-stat .lbl{ font-size: .82rem; color: var(--text-dim); font-weight: 600; margin-top: 6px; }
.cps .hero-visual{ position: relative; display: flex; justify-content: center; align-items: center; min-height: 520px; }
.cps .hero-sun{
    position: absolute; width: clamp(340px,46vw,520px); aspect-ratio: 1; border-radius: 50%;
    background: radial-gradient(circle at 50% 45%, var(--yellow) 0%, #ffb800 55%, transparent 72%);
    filter: blur(2px); opacity: 0.95; z-index: 0;
    animation: cp-pulse 6s ease-in-out infinite;
}
.cps .hero-portrait{
    position: relative; z-index: 2; width: clamp(320px,42vw,480px); aspect-ratio: 1;
    border: 5px solid var(--white); box-shadow: var(--shadow-deep), var(--glow-pink);
}
.cps .hero-portrait::after{ content: ''; position: absolute; inset: -5px; border-radius: 50%; border: 2px solid var(--yellow); animation: cp-spin 22s linear infinite; }
/* Bubliny 1:1 z varianty "light" — stejné velikosti, pozice i trasy (cp-bubble) */
@keyframes cp-bubble{ 0%,100%{ transform:translate(0,0); } 33%{ transform:translate(20px,-22px); } 66%{ transform:translate(-18px,18px); } }
.cps .hero-bubble{ position: absolute; border-radius: 50%; z-index: 1; background: radial-gradient(circle at 32% 28%, #ff63c4, var(--magenta-deep) 60%, var(--magenta-darker)); box-shadow: inset 0 -8px 20px rgba(102,6,63,0.5); }
.cps .hero-bubble.bb1{ width: 88px; height: 88px; top: 4%; left: 6%; animation: cp-bubble 9s ease-in-out infinite; }
.cps .hero-bubble.bb2{ width: 52px; height: 52px; bottom: 10%; left: 0; animation: cp-bubble 11s ease-in-out infinite reverse; }
.cps .hero-bubble.bb3{ width: 34px; height: 34px; top: 46%; left: -4%; animation: cp-bubble 7s ease-in-out infinite; }
.cps .hero-bubble.bb4{ width: 26px; height: 26px; top: 16%; right: 4%; background: radial-gradient(circle at 32% 28%, #fff07a, var(--yellow) 62%, #b89a00); box-shadow: inset 0 -6px 14px rgba(120,90,0,0.45), var(--glow-yellow); animation: cp-bubble 8s ease-in-out infinite; }
.cps .hero-deco-bubbles{ position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.cps .hero-deco-bubbles span{ position: absolute; border-radius: 50%; background: radial-gradient(circle at 32% 28%, rgba(255,99,196,0.55), rgba(154,10,100,0.35) 65%, transparent); }
.cps .hero-deco-bubbles .hb1{ width: 200px; height: 200px; top: 12%; left: 28%; opacity: .5; animation: cp-bubble 16s ease-in-out infinite; }
.cps .hero-deco-bubbles .hb2{ width: 120px; height: 120px; bottom: 14%; left: 40%; opacity: .45; animation: cp-bubble 20s ease-in-out infinite reverse; }
.cps .hero-deco-bubbles .hb3{ width: 80px; height: 80px; top: 20%; left: 52%; opacity: .4; animation: cp-bubble 14s ease-in-out infinite; }
/* Decentní velká bublina ZA hlavním nadpisem (levý sloupec hero) */
.cp-hero-left.et_pb_column{ position: relative; }
.cp-hero-left.et_pb_column > .et_pb_module{ position: relative; z-index: 1; }
.cp-hero-left .cp-h1-bubble-mod.et_pb_code{ position: absolute !important; inset: 0; z-index: 0; margin: 0 !important; pointer-events: none; }
.cp-hero-left .cp-h1-bubble-mod .cps{ position: absolute; inset: 0; }
.cp-hero-left .hero-h1-bubble{ position: absolute; top: clamp(-46px,-3vw,-12px); left: clamp(-56px,-4vw,-16px); width: clamp(190px,24vw,320px); aspect-ratio: 1; border-radius: 50%; pointer-events: none; background: radial-gradient(circle at 32% 28%, rgba(255,99,196,0.30), rgba(154,10,100,0.17) 62%, transparent); animation: cp-bubble 18s ease-in-out infinite; }
@media (max-width:960px){ .cp-hero-left .hero-h1-bubble{ left: 50%; transform: translateX(-50%); top: clamp(-30px,-5vw,-10px); } }
.cps .hero-chip{
    position: absolute; z-index: 3; display: flex; align-items: center; gap: 10px;
    background: rgba(11,0,8,0.78);
    border: 1px solid var(--border-strong); padding: 11px 16px; border-radius: var(--pill);
    box-shadow: var(--shadow-soft); font-family: var(--font-head); font-weight: 800; font-size: .86rem;
}
.cps .hero-chip .dot{ width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.cps .hero-chip .dot svg{ width: 15px; height: 15px; }
.cps .hero-chip.c-top{ top: 4%; left: -4%; animation: cp-float 8s ease-in-out infinite; }
.cps .hero-chip.c-top .dot{ background: var(--yellow); color: #1a0011; }
.cps .hero-chip.c-bot{ bottom: 6%; right: -6%; animation: cp-float 10s ease-in-out infinite reverse; }
.cps .hero-chip.c-bot .dot{ background: var(--magenta-bright); color: var(--white); }
.cps .hero-star{ position: absolute; z-index: 1; color: var(--yellow); opacity: .85; }
.cps .hero-star svg{ width: 100%; height: 100%; }
.cps .hero-star.s1{ width: 30px; height: 30px; top: 2%; left: 30%; animation: cp-twinkle 4s ease-in-out infinite; }
.cps .hero-star.s2{ width: 20px; height: 20px; bottom: 4%; left: 36%; animation: cp-twinkle 5s ease-in-out infinite 1s; }
.cps .hero-wave{ position: relative; z-index: 2; margin-top: clamp(40px,6vw,80px); line-height: 0; }
.cps .hero-wave svg{ display: block; width: 100%; height: clamp(44px,6vw,80px); }
.cps .hero-visual.hero-anim{ animation-delay: .3s; }

/* ── Proč / přednosti — dlaždice s PŘESNÝM SVG v ikoně (Text modul) ── */
/* Mřížka dlaždic v JEDNOM sloupci — karty se přidávají duplikací modulu ("+") */
.cp-feat-grid.et_pb_column{ display:grid !important; grid-template-columns:repeat(4,1fr); gap:clamp(16px,2.5vw,24px); width:100% !important; }
.cp-feat-grid.cols-3.et_pb_column{ grid-template-columns:repeat(3,1fr); }

/* ── Adaptivní mřížky karet (řada se sloupci → grid) ── */
.cp-pricegrid.et_pb_row, .cp-svcgrid.et_pb_row{ display:grid !important; gap:clamp(16px,2.4vw,24px); }
.cp-pricegrid.et_pb_row > .et_pb_column, .cp-svcgrid.et_pb_row > .et_pb_column{ width:100% !important; margin:0 !important; float:none !important; }
.cp-pricegrid.et_pb_row{ grid-template-columns:repeat(4,1fr); }
.cp-svcgrid.et_pb_row{ grid-template-columns:repeat(3,1fr); }
@media (max-width:1100px){ .cp-pricegrid.et_pb_row{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:900px){ .cp-svcgrid.et_pb_row{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:760px){ .cp-pricegrid.et_pb_row{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .cp-pricegrid.et_pb_row, .cp-svcgrid.et_pb_row{ grid-template-columns:1fr; } }
.cp-feat-grid.et_pb_column .et_pb_module{ margin:0 !important; }
/* Adaptiv — pozn.: .cols-3 má vyšší specificitu, proto musí mít vlastní breakpointy */
@media (max-width:980px){
  .cp-feat-grid.et_pb_column{ grid-template-columns:repeat(2,1fr); }
  .cp-feat-grid.cols-3.et_pb_column{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:768px){
  .cp-feat-grid.cols-3.et_pb_column{ grid-template-columns:1fr; }
}
@media (max-width:600px){
  .cp-feat-grid.et_pb_column{ grid-template-columns:1fr; }
  .cp-feat-grid.cols-3.et_pb_column{ grid-template-columns:1fr; }
}
.cp-feat-tile .et_pb_text_inner, .cp-feat-tile .feat{ height:100%; }
.cp-feat-tile .feat{ background:var(--cp-glass); border:1px solid var(--cp-border); border-radius:18px; padding:28px 24px; transition:transform .35s ease, background .35s ease, border-color .35s ease; }
.cp-feat-tile .feat:hover{ transform:translateY(-6px); border-color:var(--cp-mag-dark); background:rgba(255,255,255,0.1); }
.cp-feat-tile .f-ico{ width:50px; height:50px; border-radius:14px; display:grid; place-items:center; margin-bottom:18px; }
.cp-feat-tile .f-ico.ico-m{ background:var(--cp-mag); }
.cp-feat-tile .f-ico.ico-y{ background:var(--cp-yellow); }
.cp-feat-tile .f-ico.ico-d{ background:var(--cp-mag-dark); }
.cp-feat-tile .f-ico svg{ width:24px; height:24px; stroke:#fff; fill:none; stroke-width:2; }
.cp-feat-tile .f-ico.ico-y svg{ stroke:#1a0011; }
.cp-feat-tile h4{ color:#fff; font-family:'Nunito',sans-serif; font-weight:800; font-size:1.08rem; margin:0 0 8px; }
.cp-feat-tile p{ color:var(--cp-muted); font-family:'Quicksand',sans-serif; font-size:.92rem; margin:0; }

/* ── Header = nativní Divi "Menu" modul (lego/menu/burger se edituje v Divi) ── */
.cp-menu.et_pb_menu{ background:transparent !important; }
.cp-menu .et_pb_menu__logo img{ height:clamp(34px,4.6vw,46px) !important; width:auto !important; }
.cp-menu .et-menu li a, .cp-menu .et_mobile_menu li a{ font-family:'Nunito',sans-serif !important; font-weight:800 !important; font-size:.92rem !important; color:rgba(255,255,255,.74) !important; opacity:1 !important; }
.cp-menu .et-menu > li > a{ position:relative; }
.cp-menu .et-menu li a:hover{ color:#fff !important; }
.cp-menu .et-menu > li > a::after{ content:""; position:absolute; left:0; bottom:-3px; width:0; height:2px; background:#ffe100; border-radius:2px; transition:width .3s; }
.cp-menu .et-menu > li > a:hover::after{ width:100%; }
/* tlačítkový bod menu — položce přidej CSS třídu cp-nav-btn */
.cp-menu .et-menu li.cp-nav-btn > a, .cp-menu .et_mobile_menu li.cp-nav-btn > a{ background:#f400a7; color:#fff !important; padding:11px 22px !important; border-radius:100px; box-shadow:0 18px 44px rgba(244,0,167,.4); }
.cp-menu .et-menu li.cp-nav-btn > a::after{ display:none !important; }
.cp-menu .et-menu li.cp-nav-btn > a:hover{ background:#e00587; }
.cp-menu .et_mobile_nav_menu .mobile_menu_bar:before{ color:#fff !important; }
.cp-menu .et_mobile_menu{ background:rgba(11,0,8,.97) !important; border-color:rgba(255,255,255,.12) !important; }
.cp-menu .et_mobile_menu li a{ border:0 !important; }

/* ── Právní stránky (Ochrana soukromí / Obchodní podmínky) ── */
.cp-legal .et_pb_text_inner{ color:var(--cp-muted); font-family:'Quicksand',sans-serif; font-size:1rem; line-height:1.7; }
.cp-legal h1{ color:#fff; font-family:'Nunito',sans-serif; font-weight:900; font-size:clamp(2rem,4.5vw,3rem); margin:0 0 8px; }
.cp-legal h2{ color:#fff; font-family:'Nunito',sans-serif; font-weight:800; font-size:1.35rem; margin:30px 0 10px; }
.cp-legal p{ margin:0 0 14px; }
.cp-legal ul{ margin:0 0 16px 20px; }
.cp-legal li{ margin-bottom:6px; }
.cp-legal a{ color:var(--cp-yellow); }
.cp-legal strong{ color:#fff; }
.cp-legal .cp-updated{ color:var(--cp-dim); font-size:.9rem; margin-bottom:26px; }

/* ── Vlastní poptávkový formulář (Code modul, AJAX odeslání) ── */
.order-form{ background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.22); border-radius:30px; padding:clamp(26px,3.5vw,40px); box-shadow:0 30px 60px rgba(0,0,0,0.55); }
.order-form h3{ font-family:'Nunito',sans-serif; font-weight:900; font-size:1.4rem; margin:0 0 6px; color:#fff; }
.order-form .of-sub{ color:rgba(255,255,255,0.74); font-family:'Quicksand',sans-serif; font-size:.92rem; margin:0 0 22px; }
.order-form .of-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.order-form .of-field{ margin-bottom:14px; }
.order-form label{ display:block; font-family:'Nunito',sans-serif; font-weight:700; font-size:.82rem; color:rgba(255,255,255,0.74); margin-bottom:7px; }
.order-form label .req{ color:#f400a7; }
.order-form input, .order-form select, .order-form textarea{ width:100%; font-family:'Quicksand',sans-serif; font-size:.95rem; color:#fff; background:rgba(255,255,255,0.04); border:1.5px solid rgba(255,255,255,0.12); border-radius:12px; padding:13px 15px; transition:border-color .25s, background .25s; }
.order-form textarea{ resize:vertical; min-height:110px; max-height:340px; }
.order-form input::placeholder, .order-form textarea::placeholder{ color:rgba(255,255,255,0.5); }
.order-form input:focus, .order-form select:focus, .order-form textarea:focus{ outline:none; border-color:#f400a7; background:rgba(255,255,255,0.07); color:#fff; }
/* Chrome autofill — drží světlý text na tmavém poli (jinak text zčerná a zmizí) */
.order-form input:-webkit-autofill,
.order-form input:-webkit-autofill:hover,
.order-form input:-webkit-autofill:focus,
.order-form textarea:-webkit-autofill,
.order-form select:-webkit-autofill{
  -webkit-text-fill-color:#fff !important; caret-color:#fff;
  -webkit-box-shadow:0 0 0 1000px #2a0a20 inset !important; box-shadow:0 0 0 1000px #2a0a20 inset !important;
  transition:background-color 9999s ease-in-out 0s;
}
.order-form select{ appearance:none; -webkit-appearance:none; cursor:pointer; padding-right:40px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; background-size:16px; }
.order-form select option{ background:#2a0a20; color:#fff; }
.order-form .btn{ display:inline-flex; align-items:center; justify-content:center; gap:9px; width:100%; margin-top:6px; font-family:'Nunito',sans-serif; font-weight:800; font-size:1rem; padding:15px 30px; border:none; border-radius:100px; cursor:pointer; transition:.3s; }
.order-form .btn svg{ width:18px; height:18px; }
.order-form .btn-primary{ background:#f400a7; color:#fff; box-shadow:0 18px 44px rgba(244,0,167,0.4); }
.order-form .btn-primary:hover{ background:#e00587; transform:translateY(-3px); }
.order-form .btn:disabled{ opacity:.6; cursor:not-allowed; transform:none; }
.order-form .of-hp{ position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }
.order-form .of-note{ font-family:'Quicksand',sans-serif; font-size:.76rem; color:rgba(255,255,255,0.5); margin-top:14px; text-align:center; line-height:1.5; }
.of-success{ display:none; text-align:center; padding:26px 10px; }
.of-success.show{ display:block; }
.of-success .os-ico{ width:64px; height:64px; border-radius:50%; background:#f400a7; display:grid; place-items:center; margin:0 auto 18px; box-shadow:0 0 70px rgba(244,0,167,0.4); }
.of-success .os-ico svg{ width:30px; height:30px; stroke:#fff; fill:none; stroke-width:2.4; }
.of-success h3{ color:#fff; font-family:'Nunito',sans-serif; font-size:1.4rem; margin:0 0 8px; }
.of-success p{ color:rgba(255,255,255,0.74); font-family:'Quicksand',sans-serif; max-width:360px; margin:0 auto; }
@media(max-width:480px){ .order-form .of-row{ grid-template-columns:1fr; } }

/* ── Plynulé objevení bloků při scrollu (třídu přidává script.js) ── */
.cp-reveal{ opacity:0; transform:translateY(36px); transition:opacity .8s cubic-bezier(.2,.8,.2,1), transform .8s cubic-bezier(.2,.8,.2,1); will-change:opacity, transform; }
.cp-reveal.cp-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .cp-reveal{ opacity:1 !important; transform:none !important; transition:none !important; } }
