/* ============================================================
   DENTOSOFIA — CD-01 DESIGN SYSTEM (V2.7.8)
   Site-wide reskin using the approved CD-01 / V2.7.7 visual
   master: header, footer, homepage and the six pages rebuilt
   in this release (Dr. Ištván Kelemen, Michel Montaud,
   Aktivátor, Poznanie, Príbehy, Kontakt).

   Namespacing: every selector here is prefixed "cd01-" and does
   not reuse any class name from the legacy style.css, so this
   file can be safely added on top of the existing stylesheet
   without touching or risking pages/templates not covered by
   this release (dentosofia-antropozofia, prednasky,
   veda-a-dokazy, pravo-a-regulacia, single posts, archives).
   Loaded after style.css — see functions.php.
   ============================================================ */

:root{
  --cd01-g:#2f7a43;
  --cd01-gold:#d58f10;
  --cd01-ink:#353634;
  --cd01-line:#e6e8e4;
}

.cd01-reset,.cd01-reset *{box-sizing:border-box}
body{color:var(--cd01-ink)}
.cd01-h1,.cd01-h2,.cd01-h3,.cd01-header,.cd01-hero,.cd01-pagehero,.cd01-context,.cd01-panel,
.cd01-quoteblock,.cd01-footer{font-family:Arial,Helvetica,sans-serif}
.cd01-h1,.cd01-h2,.cd01-h3,
.cd01-hero h1,.cd01-hero h2,.cd01-pagehero h1,.cd01-context h2,.cd01-panel h2,
.cd01-quoteblock blockquote,.cd01-evidence strong,.cd01-footer .cd01-footer-brand b{
  font-family:Georgia,"Times New Roman",serif;
}
a.cd01-a{text-decoration:none;color:inherit}

/* ---------------- header / nav ---------------- */
.cd01-header{height:64px;display:grid;grid-template-columns:260px 1fr 270px;align-items:center;padding:0 4vw;border-bottom:1px solid var(--cd01-line);gap:20px;background:#fff;position:sticky;top:0;z-index:80}

/* V2.7.22 — site-wide book note, sits right under the (sticky) header so
   it's on-screen the moment the page loads, without being fixed/sticky
   itself and without scrolling behaviour of its own. Not a popup. Reuses
   the same warm "reader notice" tone as style.css's .disclaimer-box
   (amber tint, not the brand green/gold used for real calls-to-action)
   so it reads as an honest note, not an ad. */
.cd01-bookbar{background:#fff7e7;border-bottom:1px solid #f0d59f;padding:11px 4vw;text-align:center}
.cd01-bookbar p{margin:0 auto;max-width:880px;font-size:13px;line-height:1.55;color:var(--cd01-ink)}
.cd01-bookbar strong{color:#a8760c;font-weight:700}
.cd01-bookbar a{color:var(--cd01-g);font-weight:700;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
.cd01-bookbar a:hover{color:var(--cd01-gold)}
@media(max-width:720px){
  .cd01-bookbar{padding:10px 5vw;text-align:left}
  .cd01-bookbar p{font-size:12.5px;line-height:1.5}
  .cd01-bookbar a{white-space:normal}
}

.cd01-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}
.cd01-mark{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--cd01-g);color:#fff;font:20px Georgia,serif;flex:none}
.cd01-brand strong{display:block;letter-spacing:.15em;font-size:14px;font-family:Arial,Helvetica,sans-serif}
.cd01-brand small{display:block;color:var(--cd01-gold);font-size:10px}
.cd01-menu{display:flex;justify-content:center;gap:22px;font-size:12px;flex-wrap:wrap;list-style:none;margin:0;padding:0}
/* V2.7.50: video grid for page-michel-montaud.php's new "Videá a rozhovory"
   section — reuses style.css's existing .responsive-video component
   as-is, just needs a simple responsive card grid around it. */
.cd01-video-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px 24px;margin-top:8px}
.cd01-momentphoto{margin:0 6vw 40px;text-align:center}
.cd01-momentphoto img{max-width:480px;width:100%;border-radius:12px;box-shadow:var(--shadow,0 4px 18px rgba(0,0,0,.08))}
.cd01-momentphoto figcaption{margin-top:10px;font-size:12px;color:var(--cd01-muted,#777)}
@media(max-width:820px){.cd01-momentphoto{margin-left:20px;margin-right:20px}}.cd01-video-item h3{font-size:15px;margin:14px 0 6px}
.cd01-video-item p{font-size:13px;color:var(--cd01-muted,#666);margin:0}
@media(max-width:820px){.cd01-video-grid{grid-template-columns:1fr;padding:0 20px}}
.cd01-menu li{display:flex}
.cd01-menu a{text-decoration:none;color:var(--cd01-ink);padding:4px 0}
.cd01-menu a:hover,.cd01-menu li.current-menu-item>a,.cd01-menu li.current_page_item>a{color:var(--cd01-g);font-weight:700}
.cd01-right{display:flex;align-items:center;justify-content:flex-end;gap:14px}
.cd01-lang ul{display:flex;gap:10px;font-size:10px;color:#999;list-style:none;margin:0;padding:0}
.cd01-lang a,.cd01-lang span{color:#999;text-decoration:none}
.cd01-lang .is-current a,.cd01-lang li.is-current span{color:var(--cd01-g);font-weight:700}
/* Reset the legacy .dentosofia-language-switcher pill/badge styling (style.css)
   back to the approved CD-01 plain-text treatment. The legacy rule's
   min-width/height/padding/border-radius/background aren't touched by the
   rules above (same or lower specificity, different properties), so without
   this reset the header language switcher renders as filled green circles
   instead of small colored text. */
.cd01-lang .dentosofia-language-switcher{gap:10px}
.cd01-lang .dentosofia-language-switcher a,.cd01-lang .dentosofia-language-switcher span{min-width:0;height:auto;padding:0;border-radius:0;background:none;color:#999;font-size:10px;font-weight:400}
.cd01-lang .dentosofia-language-switcher a:hover{background:none;color:var(--cd01-g)}
.cd01-lang .dentosofia-language-switcher .is-current a,.cd01-lang .dentosofia-language-switcher .is-current span{background:none;color:var(--cd01-g);font-weight:700}
.cd01-lang .dentosofia-language-switcher .is-unavailable span{opacity:.35}
.cd01-navcta{background:var(--cd01-gold);color:#fff;padding:11px 18px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;text-decoration:none;display:inline-block}
.cd01-menu-toggle{display:none;appearance:none;border:1px solid var(--cd01-line);background:#fff;border-radius:8px;width:38px;height:38px;font-size:16px;line-height:1;cursor:pointer}

/* ---------------- hero (homepage) ---------------- */
.cd01-hero{height:378px;display:grid;grid-template-columns:64.5% 35.5%;border-bottom:1px solid var(--cd01-line)}
.cd01-hero .cd01-copy{padding:56px 0 40px 6vw;z-index:2;background:linear-gradient(90deg,#fcf8f5 0%,#fcf8f5 77%,rgba(252,248,245,.92) 89%,rgba(252,248,245,0) 100%)}
.cd01-kicker,.cd01-label{font-size:10px;letter-spacing:.16em;font-weight:800;color:var(--cd01-g);text-transform:uppercase}
.cd01-crumb{font-size:11px;color:#8a8f86;margin-bottom:12px}
.cd01-crumb a{color:#8a8f86;text-decoration:none}
.cd01-crumb a:hover{color:var(--cd01-g)}
.cd01-crumb span{margin:0 6px;color:#c7cbc3}
.cd01-hero h1{font-size:64px;line-height:.96;margin:26px 0 14px;letter-spacing:-.03em;color:var(--cd01-ink)}
.cd01-hero h2{font-size:28px;line-height:1.08;color:var(--cd01-gold);font-weight:400;margin:0 0 22px}
.cd01-hero p{font-size:14px;line-height:1.6;max-width:670px;margin:0;color:var(--cd01-ink)}
.cd01-actions{display:flex;gap:18px;margin-top:28px;flex-wrap:wrap}
.cd01-btn{height:42px;display:inline-flex;align-items:center;justify-content:center;padding:0 27px;border-radius:999px;font-size:13px;font-weight:700;text-decoration:none}
.cd01-primary{background:var(--cd01-g);color:#fff;min-width:220px}
.cd01-secondary{border:1px solid #dfa42f;color:#b87400;background:#fff;min-width:220px}
.cd01-photo{background-size:cover;background-position:center right;position:relative}
.cd01-photo:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.66) 18%,rgba(255,255,255,.08) 43%,transparent 58%)}

/* ---------------- three functions + quick orientation ---------------- */
.cd01-functions{display:grid;grid-template-columns:27% 12% 12% 12% 37%;min-height:246px;border-bottom:1px solid var(--cd01-line)}
.cd01-intro{padding:45px 3vw 34px 3.1vw}
.cd01-intro h2{font-size:27px;line-height:1.05;margin:20px 0;color:var(--cd01-ink)}
.cd01-intro p{font-size:13px;line-height:1.55;max-width:360px;color:var(--cd01-ink)}
.cd01-textlink{font-size:11px;color:var(--cd01-g);font-weight:700;text-decoration:none}
.cd01-function{padding:42px 18px 22px;text-align:center;border-left:1px solid var(--cd01-line)}
.cd01-function img{height:66px;max-width:90px;object-fit:contain;margin-bottom:8px}
.cd01-function h3{font-size:17px;margin:0 0 9px;color:var(--cd01-ink)}
.cd01-function p{font-size:13px;line-height:1.52;max-width:150px;margin:0 auto;color:var(--cd01-ink)}
.cd01-quick{padding:45px 3vw 25px;background:linear-gradient(135deg,#f3f8f3,#fbfcfa)}
.cd01-quickgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 30px;margin-top:13px}
.cd01-quick a{height:44px;display:grid;grid-template-columns:28px 1fr 14px;align-items:center;border-bottom:1px solid #dfe6df;font-size:12px;font-weight:700;text-decoration:none;color:var(--cd01-ink)}
.cd01-quick img{width:20px;height:20px;object-fit:contain}
.cd01-quick b{font-size:17px;color:var(--cd01-g);font-weight:400}

/* ---------------- cards ---------------- */
.cd01-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:12px 2.2vw 14px}
.cd01-cards.cd01-cards-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cd01-card{min-height:170px;border:1px solid var(--cd01-line);border-radius:7px;padding:22px 19px;display:grid;grid-template-columns:56px minmax(0,1fr);gap:14px;overflow:hidden}
.cd01-card img{width:50px;height:50px;object-fit:contain}
.cd01-card h3{font-size:16px;line-height:1.15;margin:2px 0 10px;color:var(--cd01-ink)}
.cd01-card p{font-size:13px;line-height:1.52;margin:0 0 11px;color:var(--cd01-ink)}
.cd01-card a{font-size:11px;color:var(--cd01-g);font-weight:700;text-decoration:none}

/* ---------------- card expand (native details/summary, no JS) ---------------- */
/* V2.7.26 (preview): selectors extended to .cd01-source so the same
   read-more pattern used by .cd01-card (Kritický hlas / Skúsenosti ľudí)
   also works inside the source-list cards on /montaud-vo-svete/ — no new
   CSS rules, just the existing ones applied to a second class. */
.cd01-card details,.cd01-source details{margin-top:6px}
.cd01-card summary,.cd01-source summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--cd01-g);-webkit-user-select:none;user-select:none}
.cd01-card summary::-webkit-details-marker,.cd01-source summary::-webkit-details-marker{display:none}
.cd01-card summary::before,.cd01-source summary::before{content:"+";flex:none;width:14px;height:14px;line-height:13px;text-align:center;border:1px solid var(--cd01-g);border-radius:50%;font-size:11px}
.cd01-card details[open] summary::before,.cd01-source details[open] summary::before{content:"\2013"}
.cd01-card summary:focus-visible,.cd01-source summary:focus-visible{outline:2px solid var(--cd01-g);outline-offset:3px;border-radius:3px}
.cd01-card summary .cd01-less-label,.cd01-source summary .cd01-less-label{display:none}
.cd01-card details[open] summary .cd01-more-label,.cd01-source details[open] summary .cd01-more-label{display:none}
.cd01-card details[open] summary .cd01-less-label,.cd01-source details[open] summary .cd01-less-label{display:inline}
.cd01-card-expand{margin-top:10px;padding-top:10px;border-top:1px solid var(--cd01-line);font-size:13px;line-height:1.6;color:var(--cd01-ink)}
.cd01-card-expand p{margin:0 0 8px}
.cd01-card-expand p:last-child{margin-bottom:0}
.cd01-card-expand ul{margin:0 0 8px;padding-left:16px}
.cd01-card-expand li{margin-bottom:5px}
.cd01-card-expand li:last-child{margin-bottom:0}
.cd01-card-expand b{color:var(--cd01-ink)}

/* ---------------- panels ---------------- */
.cd01-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:0 2.2vw 18px}
.cd01-panel{min-height:142px;border-radius:7px;padding:20px 30px;display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:22px}
.cd01-panel.cd01-green{background:linear-gradient(105deg,#edf6ee,#f8fbf8)}
.cd01-panel.cd01-gold{background:linear-gradient(105deg,#fff8e9,#fffdf8)}
.cd01-round{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:#fff;box-shadow:0 5px 18px rgba(0,0,0,.04)}
.cd01-round img{width:42px;height:42px;object-fit:contain}
.cd01-panel h2{font-size:20px;margin:0 0 7px;color:var(--cd01-ink)}
.cd01-panel p{font-size:13px;line-height:1.52;margin:0 0 10px;color:var(--cd01-ink)}
.cd01-panel a{font-size:11px;font-weight:700;color:var(--cd01-g);text-decoration:none}
.cd01-panel.cd01-gold a{color:#bd7900}

/* ---------------- context / evidence ---------------- */
.cd01-context{display:grid;grid-template-columns:.9fr 1.3fr .8fr;gap:50px;padding:56px 6vw 62px;border-top:1px solid var(--cd01-line)}
.cd01-context h2{font-size:36px;line-height:1.06;margin:18px 0 0;color:var(--cd01-ink)}
.cd01-context p{font-size:13px;line-height:1.62;margin-top:0;color:var(--cd01-ink)}
.cd01-evidence{background:#f5faf5;border:1px solid #dce7dc;border-radius:9px;padding:24px}
.cd01-evidence strong{font-size:19px;color:var(--cd01-ink)}
.cd01-evidence p{font-size:13px;margin:10px 0 12px;color:var(--cd01-ink)}
.cd01-evidence a{font-size:11px;color:var(--cd01-g);font-weight:700;text-decoration:none}
.cd01-note{padding:12px 4vw;background:#f1f2ef;color:#777;font-size:11px}

/* ---------------- sitewide disclaimer bar (V2.7.17) ----------------
   Shown on every page (markup in footer.php, loaded by every template
   via get_footer()). No dismiss control — user's explicit instruction:
   "vždy a všade" (always and everywhere), not a one-time notice.
   On mobile widths, style.css's own .mobile-consultation-bar (V2.4) is
   also fixed to the viewport bottom — this bar is pushed above it
   (bottom:78px, matching that bar's own reserved height) so neither
   covers the other, and body gets extra reserved space for both. */
.cd01-floatbar{position:fixed;left:0;right:0;bottom:0;z-index:95;background:var(--cd01-ink);color:#f4f5f2;font-size:11px;line-height:1.5;padding:10px 4vw;text-align:center;box-shadow:0 -2px 10px rgba(0,0,0,.14)}
.cd01-floatbar b{color:var(--cd01-gold)}
body{padding-bottom:52px}
@media(max-width:1180px){
  .cd01-floatbar{bottom:78px;text-align:left;padding:10px 5vw}
  body{padding-bottom:calc(78px + 74px + env(safe-area-inset-bottom))}
}
@media(max-width:520px){
  .cd01-floatbar{font-size:10px}
  body{padding-bottom:calc(78px + 90px + env(safe-area-inset-bottom))}
}

/* ---------------- subpage hero ---------------- */
.cd01-pagehero{display:grid;grid-template-columns:1.15fr .85fr;border-bottom:1px solid var(--cd01-line);min-height:300px}
.cd01-pagehero .cd01-copy{padding:52px 5vw 40px 6vw}
.cd01-pagehero h1{font-size:44px;line-height:1.02;margin:18px 0 10px;letter-spacing:-.02em;color:var(--cd01-ink)}
.cd01-pagehero h2{font-size:19px;line-height:1.3;color:var(--cd01-gold);font-weight:400;margin:0 0 18px}
.cd01-pagehero p{font-size:13.5px;line-height:1.66;max-width:520px;margin:0 0 8px;color:var(--cd01-ink)}
.cd01-portrait{background:linear-gradient(150deg,#eef4ef,#fbf7ec);display:flex;align-items:center;justify-content:center;position:relative;border-left:1px solid var(--cd01-line);background-size:cover;background-position:center}
.cd01-portrait img{width:64px;height:64px;object-fit:contain;opacity:.85}
.cd01-portrait span{position:absolute;bottom:16px;left:0;right:0;text-align:center;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:#8b9a8f;background:rgba(255,255,255,.8);padding:3px 0}

/* ---------------- quote / timeline / ticks / context box ---------------- */
.cd01-quoteblock{margin:0;padding:40px 6vw;border-bottom:1px solid var(--cd01-line);background:#fafcf9}
.cd01-quoteblock blockquote{margin:0;font-size:22px;line-height:1.42;color:var(--cd01-ink);max-width:820px}
.cd01-quoteblock span{display:block;font-size:11px;color:var(--cd01-g);font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px}

.cd01-timeline{padding:44px 6vw 50px;border-bottom:1px solid var(--cd01-line)}
.cd01-timeline .cd01-label{margin-bottom:18px;display:block}
/* V2.7.19: heading for a second cd01-timeline block on one page (e.g.
   "Vydania knihy" under Michel Montaud) — the label alone was enough
   when only one timeline existed per page, a second one needs its own
   title so the two aren't read as one continuous sequence. */
.cd01-timeline h2{font-family:Arial,Helvetica,sans-serif;font-size:27px;line-height:1.1;margin:0 0 22px;color:var(--cd01-ink)}
.cd01-tl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px 20px}
.cd01-tl-item{border-left:2px solid var(--cd01-line);padding:0 0 4px 16px;position:relative}
.cd01-tl-item:before{content:"";position:absolute;left:-5px;top:2px;width:8px;height:8px;border-radius:50%;background:var(--cd01-g)}
.cd01-tl-item b{display:block;font-family:Georgia,serif;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--cd01-g);margin-bottom:6px}
.cd01-tl-item h3{font-size:15px;margin:0 0 6px;color:var(--cd01-ink)}
.cd01-tl-item p{font-size:13px;line-height:1.5;color:var(--cd01-ink);margin:0}
.cd01-tl-item a{display:inline-block;margin-top:6px;font-size:11px;font-weight:700;color:var(--cd01-g);text-decoration:none}/*V2.7.20: "Kúpiť" links on the Vydania knihy timeline items*/
.cd01-tl-grid.cd01-tl-6{grid-template-columns:repeat(6,1fr)}
.cd01-tl-grid.cd01-tl-6 .cd01-tl-item h3{font-size:13px}
/* V2.7.20: a .cd01-timeline used only as a label+heading strip directly
   above an unrelated section (e.g. a cd01-cards grid that needs its own
   intro but isn't itself a timeline) — no bottom border/padding of its
   own, the section below supplies the spacing. */
.cd01-timeline-head{padding-bottom:0;border-bottom:0}

.cd01-ticks{display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:18px 0;list-style:none}
.cd01-ticks li{font-size:11.5px;font-weight:700;color:var(--cd01-g);background:#eef6ef;border:1px solid #d9ecdb;border-radius:999px;padding:7px 14px}

.cd01-contextbox{background:#fff8e9;border:1px solid #f0dfb2;border-radius:9px;padding:18px 20px;margin:20px 0;max-width:560px}
.cd01-contextbox b{display:block;font-size:12px;color:#8a6300;margin-bottom:6px}
.cd01-contextbox p{font-size:13px;line-height:1.6;margin:0;color:var(--cd01-ink)}

.cd01-bookline{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:6px}
.cd01-book{font-family:Georgia,serif;font-size:12px;line-height:1.4;color:var(--cd01-ink);border-left:3px solid var(--cd01-gold);padding-left:12px}

.cd01-quotepanel{background:#f5faf5;border:1px solid #dce7dc;border-radius:9px;padding:26px 30px;margin:0 6vw 44px;max-width:900px}
.cd01-quotepanel p{margin:0;font-family:Georgia,serif;font-size:17px;line-height:1.5;color:var(--cd01-ink)}

/* ---------------- source library ---------------- */
/* V2.7.28: .cd01-sources switched from CSS grid to flexbox so an
   under-full last row of a region's cards (e.g. 9 cards in a
   4-per-row layout) stretches to fill the row instead of leaving a
   visibly empty gap — flexbox wraps and redistributes space per line,
   which a shared multi-region CSS grid cannot do since its column
   tracks are fixed for the whole grid. .cd01-region keeps acting as a
   full-width divider via flex-basis:100% instead of grid-column:1/-1. */
.cd01-sources{display:flex;flex-wrap:wrap;gap:14px;padding:0 6vw 50px}
.cd01-source{flex:1 1 260px;border:1px solid var(--cd01-line);border-radius:9px;padding:18px}
.cd01-source small{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--cd01-gold);font-weight:800}
.cd01-source h3{font-size:14px;margin:8px 0 8px;color:var(--cd01-ink)}
.cd01-source p{font-size:13px;line-height:1.55;margin:0;color:var(--cd01-ink)}
.cd01-source a{color:var(--cd01-g);font-weight:700;text-decoration:none}/*V2.7.19: first source-card with an inline link*/

/* V2.7.23 — /montaud-vo-svete/: region sub-headings inside one large
   .cd01-sources grid, and a quiet left-accent for critical/skeptical
   source cards so they're findable at a glance without a separate
   grid or a judgemental color (still the same neutral card as every
   other source). */
.cd01-region{flex-basis:100%;margin:34px 0 4px;padding-top:22px;border-top:1px solid var(--cd01-line)}
.cd01-region:first-child{margin-top:0;padding-top:0;border-top:0}
.cd01-region h3{font-family:Georgia,"Times New Roman",serif;font-size:19px;margin:0 0 4px;color:var(--cd01-ink)}
.cd01-region-meta{font-size:13px;color:#77736a;margin:0}
.cd01-source.cd01-source-kritika{border-left:3px solid var(--cd01-gold)}

.cd01-navcards{display:flex;gap:14px;flex-wrap:wrap;padding:0 6vw 50px}
.cd01-navcards a{font-size:12px;font-weight:700;color:var(--cd01-g);text-decoration:none;border:1px solid var(--cd01-line);border-radius:999px;padding:10px 18px}

/* ---------------- knowledge grid + evidence zones (Poznanie) ---------------- */
/* V2.7.28: same flexbox last-row-fill fix as .cd01-sources above — the
   10-item "Knižnica poznania" list otherwise leaves 2 visibly empty
   bordered cells in its last row (10 isn't a multiple of 4). */
.cd01-kgrid{display:flex;flex-wrap:wrap;gap:1px;background:var(--cd01-line);border:1px solid var(--cd01-line)}
.cd01-kgrid a{flex:1 1 320px;background:#fff;padding:26px 22px;display:flex;flex-direction:column;gap:8px;min-height:118px;text-decoration:none}
.cd01-kgrid b{font-family:Georgia,serif;font-size:15px;color:var(--cd01-ink)}
.cd01-kgrid span{font-size:11px;line-height:1.5;color:#777}
.cd01-kgrid i{font-style:normal;color:var(--cd01-g);font-size:11px;font-weight:700;margin-top:auto}

.cd01-zones{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:0 6vw 50px}
.cd01-zone{border:1px solid var(--cd01-line);border-radius:9px;padding:18px}
.cd01-zone b{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}
.cd01-zone.cd01-za b{color:var(--cd01-g)}
.cd01-zone.cd01-zb b{color:#7a8f4a}
.cd01-zone.cd01-zc b{color:var(--cd01-gold)}
.cd01-zone.cd01-zd b{color:#b5480f}
.cd01-zone p{font-size:13px;line-height:1.55;margin:0;color:var(--cd01-ink)}

/* ---------------- stories ---------------- */
.cd01-storygrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:0 6vw 12px}
.cd01-storycard{border:1px solid var(--cd01-line);border-radius:9px;overflow:hidden;text-decoration:none;color:inherit;display:block}
.cd01-storycard .cd01-thumb{height:140px;background:linear-gradient(135deg,#eef4ef,#fbf7ec);background-size:cover;background-position:center}
.cd01-storycard .cd01-thumb.cd01-b{background:linear-gradient(135deg,#fff8e9,#fbf7ec)}
.cd01-storycard .cd01-thumb.cd01-c{background:linear-gradient(135deg,#f3f8f3,#eef4ef)}
.cd01-storycard .cd01-txt{padding:16px 18px 20px}
.cd01-storycard span.cd01-chip{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--cd01-gold);font-weight:800}
.cd01-storycard h3{font-size:15px;margin:8px 0 10px;color:var(--cd01-ink)}
.cd01-storycard .cd01-more{font-size:11px;color:var(--cd01-g);font-weight:700}
.cd01-disclaimer{font-size:13px;color:#8a8f86;line-height:1.6;padding:0 6vw 44px;max-width:640px}

/* ---------------- contact ---------------- */
.cd01-contactpanel{display:grid;grid-template-columns:1.1fr .9fr;gap:0;border-bottom:1px solid var(--cd01-line)}
.cd01-contactpanel .cd01-copy2{padding:52px 6vw}
.cd01-contactpanel .cd01-copy2 h1{font-size:38px;margin:16px 0 14px;color:var(--cd01-ink)}
.cd01-contactpanel .cd01-copy2 p{font-size:13.5px;line-height:1.66;max-width:480px;margin:0 0 22px;color:var(--cd01-ink)}
.cd01-langbox{background:#f5faf5;padding:52px 5vw;display:flex;flex-direction:column;justify-content:center;gap:14px}
.cd01-langbox b{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--cd01-g)}
.cd01-langrow{display:flex;gap:10px;flex-wrap:wrap}
.cd01-langrow ul{display:flex;gap:10px;flex-wrap:wrap;list-style:none;margin:0;padding:0}
.cd01-langrow a,.cd01-langrow span{font-size:11px;border:1px solid var(--cd01-line);border-radius:999px;padding:6px 12px;background:#fff;text-decoration:none;color:var(--cd01-ink);display:inline-block}
.cd01-langrow li.is-current a,.cd01-langrow li.is-current span{border-color:var(--cd01-g);color:var(--cd01-g);font-weight:700}
/* Same legacy-pill reset as .cd01-lang above: the plain a/span rule already
   sets border/padding/background/border-radius so it wins on the tie, but
   the legacy rule's min-width/height are on different properties and would
   otherwise still force a min 31x31px box. */
.cd01-langrow .dentosofia-language-switcher a,.cd01-langrow .dentosofia-language-switcher span{min-width:0;height:auto}
.cd01-contactmeta{padding:40px 6vw;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.cd01-contactmeta div{border-top:2px solid var(--cd01-line);padding-top:12px}
.cd01-contactmeta b{display:block;font-size:12px;margin-bottom:4px;color:var(--cd01-ink)}
.cd01-contactmeta span{font-size:13px;color:#777;line-height:1.5}
.cd01-contactmeta a{color:var(--cd01-g);text-decoration:none;font-weight:700}

/* ---------------- responsive video (kelemen embed) ---------------- */
.cd01-video{padding:0 6vw 50px}
.cd01-video-frame{position:relative;padding-top:56.25%;max-width:720px;margin:0 auto;border-radius:9px;overflow:hidden;border:1px solid var(--cd01-line)}
.cd01-video-frame iframe,.cd01-video-frame>*{position:absolute;inset:0;width:100%;height:100%;border:0;margin:0}

/* ---------------- footer ---------------- */
.cd01-footer{background:#fafcf9;border-top:1px solid var(--cd01-line);padding:50px 6vw 0}
.cd01-footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr 1fr;gap:24px;padding-bottom:36px}
.cd01-footer-brand b{display:block;font-size:15px;letter-spacing:.1em;color:var(--cd01-ink);margin-bottom:6px}
.cd01-footer-brand span{font-size:11.5px;color:#8a8f86;line-height:1.5}
.cd01-footer-col b{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--cd01-g);margin-bottom:12px}
.cd01-footer-col a{display:block;font-size:12px;color:var(--cd01-ink);text-decoration:none;margin-bottom:9px}
.cd01-footer-col a:hover{color:var(--cd01-g)}
.cd01-footer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:18px 0;border-top:1px solid var(--cd01-line);font-size:11px;color:#8a8f86}
.cd01-footer-bottom ul{display:flex;gap:10px;list-style:none;margin:0;padding:0}
.cd01-footer-bottom a,.cd01-footer-bottom span{color:#8a8f86;text-decoration:none}
.cd01-footer-bottom .is-current a,.cd01-footer-bottom li.is-current span{color:var(--cd01-g);font-weight:700}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1200px){
  .cd01-cards{grid-template-columns:repeat(3,1fr)}
  .cd01-context{grid-template-columns:1fr 1.4fr}
  .cd01-evidence{grid-column:1/-1}
  .cd01-kgrid a{flex-basis:calc(50% - 1px)}
  .cd01-zones{grid-template-columns:repeat(2,1fr)}
  .cd01-storygrid{grid-template-columns:1fr}
  .cd01-tl-grid{grid-template-columns:repeat(2,1fr)}
  .cd01-tl-grid.cd01-tl-6{grid-template-columns:repeat(3,1fr)}
  .cd01-source{flex-basis:calc(50% - 7px)}
  .cd01-footer-grid{grid-template-columns:1.3fr 1fr 1fr;row-gap:30px}
}
@media(max-width:820px){
  .cd01-header{grid-template-columns:1fr auto;padding:0 20px}
  .cd01-menu{position:fixed;top:64px;left:0;right:0;bottom:0;background:#fff;flex-direction:column;gap:0;padding:10px 20px;transform:translateY(-8px);opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease;overflow:auto}
  .cd01-menu li{border-bottom:1px solid var(--cd01-line)}
  .cd01-menu a{padding:16px 2px;font-size:15px;width:100%}
  /* V2.7.18 originally hid this here to fix a header-overflow bug (see
     note below) — V2.7.50 briefly tried moving the switcher into the
     hamburger dropdown instead, but the user asked for it to stay
     directly in the top bar on mobile too. Kept visible here now,
     already compact by design (10px font, 4 short codes) so it fits next
     to the hamburger button in the same "auto" grid column without
     reintroducing the original overflow -- .cd01-navcta (the actual wide
     button) stays hidden below, which is what caused that bug. */
  .cd01-right{gap:10px}
  .cd01-lang ul,.cd01-lang .dentosofia-language-switcher{gap:8px}
  /* V2.7.18 bugfix: the header's own "Nájsť konzultáciu" button (.cd01-navcta)
     plus the hamburger button no longer fit the narrow "auto" column at
     phone widths, pushing .cd01-header's real content past the viewport
     edge (a genuine horizontal-scroll bug, reported by the user testing
     the homepage on mobile). Hidden here — style.css's own V2.4
     .mobile-consultation-bar already gives mobile visitors the identical
     CTA as a persistent bottom bar, so nothing is actually lost. */
  .cd01-navcta{display:none}
  .cd01-menu-toggle{display:grid;place-items:center}
  .cd01-header.cd01-open .cd01-menu{opacity:1;transform:translateY(0);pointer-events:auto}

  .cd01-hero{height:auto;grid-template-columns:1fr}
  .cd01-hero .cd01-copy{padding:42px 22px;background:#fff}
  .cd01-hero h1{font-size:48px}
  .cd01-hero h2{font-size:24px}
  .cd01-photo{height:290px}
  .cd01-actions{flex-direction:column;align-items:flex-start}
  .cd01-functions{grid-template-columns:1fr}
  .cd01-intro{padding:38px 22px}
  .cd01-function{border-left:0;border-top:1px solid var(--cd01-line);text-align:left;padding:26px 22px}
  .cd01-function p{max-width:none;margin:0}
  .cd01-quick{padding:34px 22px}
  .cd01-quickgrid{grid-template-columns:1fr}
  .cd01-cards,.cd01-cards.cd01-cards-3{grid-template-columns:1fr;padding:12px}
  .cd01-panels{grid-template-columns:1fr;padding:0 12px 12px}
  .cd01-context{grid-template-columns:1fr;gap:20px;padding:45px 22px}
  .cd01-evidence{grid-column:auto}
  .cd01-pagehero{grid-template-columns:1fr}
  .cd01-portrait{min-height:220px;border-left:0;border-top:1px solid var(--cd01-line)}
  .cd01-tl-grid,.cd01-tl-grid.cd01-tl-6{grid-template-columns:1fr 1fr;padding:0 20px}
  .cd01-timeline{padding:34px 0 40px}
  .cd01-kgrid a{flex-basis:100%}
  .cd01-zones{grid-template-columns:1fr;padding:0 20px 40px}
  .cd01-storygrid{grid-template-columns:1fr;padding:0 20px}
  .cd01-sources{padding:0 20px 40px}
  .cd01-source{flex-basis:100%}
  .cd01-contactpanel{grid-template-columns:1fr}
  .cd01-contactmeta{grid-template-columns:1fr;padding:30px 22px}
  .cd01-disclaimer{padding:0 20px 34px}
  .cd01-quoteblock{padding:30px 22px}
  .cd01-quotepanel{margin:0 20px 34px}
  .cd01-sources,.cd01-navcards,.cd01-video{padding-left:20px;padding-right:20px}
  .cd01-footer-grid{grid-template-columns:1fr 1fr;padding:0 0 30px}
}
@media(prefers-reduced-motion:reduce){
  .cd01-menu{transition:none}
}
