/* Shared Dadan Akta geometry. Deliberate circles remain circular. */
:root {
    --site-content-width: 1240px;
    --site-frame-width: min(70vw, var(--site-content-width));
    --site-card-radius: 3px;
    --site-gutter: 24px;
}
/* The whole site is a centered frame; section photographs and colors stay intact. */
html {
    background: #eef0f2;
}
body {
    display: flow-root;
    width: var(--site-frame-width);
    min-height: 100vh;
    margin-inline: auto;
    background-color: #fff;
    box-shadow: 0 0 0 1px rgba(31, 47, 70, 0.06),
        0 12px 48px rgba(31, 47, 70, 0.08);
}
.header {
    width: var(--site-frame-width);
    left: calc((100% - var(--site-frame-width)) / 2);
    right: auto;
}
/* Hide the entire skip-link panel, including wrapped text, until keyboard focus. */
.skip-links {
    position: fixed;
    top: 0;
    left: calc((100% - var(--site-frame-width)) / 2 + 6px);
    transform: translateY(calc(-100% - 8px));
}
.skip-links:focus-within {
    top: 6px;
    transform: none;
}
/* Replace the old viewport-wide breakout rather than clipping carousel content. */
.services.is-carousel .services-carousel {
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
}
.services.is-carousel .services-carousel-track .service-item {
    max-width: 100%;
}
.container {
    width: 100%;
    max-width: var(--site-content-width) !important;
    margin-inline: auto;
    padding-inline: var(--site-gutter);
}
.header .container, .footer .container {
    max-width: var(--site-content-width) !important;
}
@media (min-width: 1025px) and (max-width: 1600px) {
    .header .project-nav { display: none; }
    .header .nav-menu { gap: 12px; }
    .header .nav-menu a { padding-inline: 8px; font-size: 0.8rem; }
    .header .company-name-text { font-size: 1rem; }
}
@media (max-width: 1100px) {
    :root { --site-frame-width: calc(100% - 48px); }
}
@media (max-width: 640px) {
    :root { --site-frame-width: 100%; --site-gutter: 16px; }
    body { box-shadow: none; }
}
:where(.service-item, .service-card, .contact-card, .contact-form,
    .contact-form-container, .contact-info, .c3-card, .c3-map-wrap,
    .c3-timeline, .cookie-banner, .cookie-settings, .monolit-grid,
    .monolit-left, .monolit-right, .aside-card, .fact-card,
    .feature-card, .testimonial-card, .split-card, .gallery-card) {
    border-radius: var(--site-card-radius) !important;
}
:where(.btn, .btn-primary, .btn-secondary, .cta-button,
    .submit-btn, .cookie-btn, input:not([type="checkbox"]):not([type="radio"]),
    textarea, select) {
    border-radius: var(--site-card-radius) !important;
}
.c3-thumb {
    border-radius: var(--site-card-radius) !important;
    aspect-ratio: 1;
}
.c3-card-title, .c3-card-type {
    white-space: normal;
    overflow-wrap: anywhere;
}
.c3-card-arrow {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    font-size: 0.7rem;
    width: auto;
}
.c3-card-status--unverified, .c3-card-status--unconfirmed { color: #d2d8e3; }
.c3-card-status--unverified::before, .c3-card-status--unconfirmed::before { background: #a3adbc; }
.c3-marker[data-status="unconfirmed"] .c3-dot { fill: #a3adbc; }
.c3-marker[data-status="unconfirmed"] .c3-pulse { display: none; }
.c3-chip[data-status="unconfirmed"] { border-color: #9ba5b4; }
.c3-leg--unconfirmed::before { background: #a3adbc; }
:where(a, button, input, textarea, select):focus-visible {
    outline: 3px solid #d99720;
    outline-offset: 3px;
}
@media (max-width: 600px) {
    .c3-card-arrow { font-size: 0.65rem; }
    .c3-card { gap: 10px; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}
/* A quiet architectural backdrop around the continuous white page. */
html {
    background-color:#eef0f2;
    background-image:linear-gradient(rgba(238,240,242,.78),rgba(238,240,242,.78)),url('/images/campaign/construction-grid.svg');
    background-size:auto,1200px 1400px;
    background-position:center,center top;
    background-attachment:fixed;
}
body { box-shadow:0 0 0 1px rgba(75,68,51,.08),0 18px 75px rgba(49,42,28,.12); }
.header.brand-header { height:80px; background:rgba(255,255,255,.97); border-bottom:1px solid #d5d9de; box-shadow:0 4px 20px rgba(30,32,28,.04); animation:none; }
.brand-header-inner { height:100%; display:flex; align-items:center; gap:20px; padding:0 24px; }
.brand-identity { display:flex; align-items:center; gap:12px; color:#20242a; text-decoration:none; flex-shrink:0; }
.brand-identity img { display:block; width:48px; height:48px; object-fit:contain; }
.brand-identity span { display:flex; flex-direction:column; gap:2px; }
.brand-identity strong { font-size:16px; font-weight:800; letter-spacing:-.04em; white-space:nowrap; }
.brand-identity small { font-size:8px; letter-spacing:.16em; color:#555d66; font-weight:600; }
.brand-nav { display:flex; align-items:center; justify-content:center; gap:18px; margin-left:auto; }
.brand-nav a { color:#20242a; text-decoration:none; font-size:11px; font-weight:600; white-space:nowrap; padding:10px 0; border-bottom:2px solid transparent; }
.brand-nav a:hover { border-bottom-color:#ffba44; }
.brand-phone { display:flex; flex-direction:column; gap:1px; text-align:right; flex-shrink:0; border-left:1px solid #d5d9de; padding-left:18px; }
.brand-phone a { color:#20242a; font-size:13px; font-weight:700; text-decoration:none; white-space:nowrap; }
.brand-phone span { font-size:9px; color:#555d66; white-space:nowrap; }
@media (min-width:1025px) and (max-width:1250px) {
 .brand-header-inner { gap:12px; padding-inline:18px; }
 .brand-identity { gap:8px; } .brand-identity strong { font-size:14px; }
 .brand-identity img { width:40px; height:40px; }
 .brand-nav { gap:12px; } .brand-nav a { font-size:10px; }
 .brand-phone { padding-left:10px; } .brand-phone a { font-size:11px; }
}
@media(max-width:1024px) { .brand-nav { display:none; } .brand-phone { margin-left:auto; } }
@media(max-width:640px) {
 .header.brand-header { height:72px; }
 .brand-header-inner { gap:10px; padding:0 16px; }
 .brand-identity { gap:8px; } .brand-identity img { width:40px; height:40px; }
 .brand-identity strong { font-size:14px; } .brand-identity small { font-size:7px; letter-spacing:.1em; }
 .brand-phone { padding-left:10px; } .brand-phone a { font-size:11px; } .brand-phone span { font-size:8px; }
}
.brand-google-links { display:flex; flex-wrap:wrap; gap:8px 18px; margin:12px 0; }
.brand-google-links a { color:#20242a; font-size:12px; font-weight:600; text-decoration:underline; text-underline-offset:4px; }
.footer .brand-google-links a { color:#ffba44; }
/* Footer responds to its actual narrow page container, not the viewport. */
.footer { padding:44px 0 24px; }
.footer .footer-main { display:block; margin-bottom:26px; }
.footer .footer-brand { display:flex; flex-direction:row; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px; margin-bottom:34px; }
.footer .footer-logo-wrapper { display:flex; flex-direction:row; text-align:left; align-items:center; gap:16px; min-width:0; flex:1 1 280px; }
.footer .footer-logo { width:56px; height:56px; flex-shrink:0; }
.footer .footer-brand-text { min-width:0; padding:0; max-width:360px; }
.footer .footer-brand-text h3 { font-size:22px; margin-bottom:6px; }
.footer .footer-tagline { font-size:13px; line-height:1.6; }
.footer .footer-stats { display:flex; flex-direction:row; gap:12px; margin:0; }
.footer .footer-stats .stat-item { padding:12px 16px; border-radius:3px; max-width:150px; }
.footer .footer-stats .stat-number { font-size:24px; margin:0; }
.footer .footer-stats .stat-label { font-size:9px; line-height:1.5; }
.footer .footer-sections { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:28px; }
.footer .footer-section { min-width:0; }
.footer .footer-section h4 { font-size:16px; margin-bottom:16px; }
.footer .footer-section p,.footer .footer-section a { font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
.footer .contact-links { min-width:0; max-width:100%; }
.footer .contact-link { box-sizing:border-box; width:100%; min-width:0; padding:12px 14px; border-radius:3px; }
.footer .contact-link svg { flex-shrink:0; }
.footer .legal-links { flex-wrap:wrap; gap:8px 20px; }
.footer .footer-bottom { margin-top:24px; padding-top:20px; }

/* Brand system: charcoal, white and the yellow of our logo. */
:root {
 --ui-ink:#20242a; --ui-muted:#555d66; --ui-yellow:#ffba44;
 --ui-line:#d5d9de; --ui-soft:#f4f5f7;
 --ui-h1:clamp(30px,3.2vw,44px); --ui-h2:clamp(24px,2.2vw,32px); --ui-h3:22px;
 --primary-color:var(--ui-yellow); --accent-color:var(--ui-yellow);
 --secondary-color:var(--ui-ink); --text-color:var(--ui-ink); --brand-secondary:var(--ui-ink);
 --support-dark:var(--ui-ink);
}
body { font-size:16px; line-height:1.65; letter-spacing:normal; box-shadow:0 0 0 1px #20242a0d,0 18px 75px #20242a14; }
.brand-header-inner { gap:20px; }
.brand-identity { color:var(--ui-ink); gap:10px; }
.brand-identity strong { font-size:18px; letter-spacing:-.035em; }
.brand-identity small { display:none; }
.brand-nav { gap:16px; }
.brand-nav a { display:flex; align-items:center; font-size:14px; min-height:44px; color:var(--ui-ink); }
.brand-phone a { display:flex; align-items:center; font-size:16px; min-height:44px; }
.brand-phone span { font-size:12px; color:var(--ui-muted); }
.brand-google-links a { font-size:14px; }
.brand-phone { padding-left:14px; }
:where(.btn,.btn-primary,.btn-secondary,.cta-button,.cookie-btn,.cc-btn) { font-size:16px; min-height:44px; }
:where(input,select,textarea) { font-family:inherit; }
:where(h1) { font-size:var(--ui-h1); line-height:1.16; }
:where(h2) { font-size:var(--ui-h2); line-height:1.25; }
:where(h3) { font-size:var(--ui-h3); line-height:1.35; }
.campaign-intro h1 { font-size:var(--ui-h1); }
.campaign-intro p { font-size:16px; color:var(--ui-muted); }
.campaign-kicker { font-size:14px; letter-spacing:.1em; }
.campaign-link { font-size:16px; min-height:44px; }
.campaign-disclosure { font-size:12px; }
.project-launcher { width:84px; color:#fff; border-color:var(--ui-yellow); }
.project-launcher span { font-size:12px; }
.project-launcher svg { color:var(--ui-yellow); }
.directory-heading h2 { font-size:var(--ui-h2); }
.directory-close { width:44px; height:44px; }
.directory-tabs button,.directory-list>button { min-height:44px; font-size:14px; }
.directory-tabs button[aria-pressed="true"] { background:var(--ui-yellow); color:var(--ui-ink); border-color:var(--ui-yellow); font-weight:700; }
.directory-card strong { font-size:18px; }
.directory-card small,.directory-state { font-size:14px; }
.directory-contact { font-size:16px; }
.directory-contact a { min-height:44px; display:flex; align-items:center; }
.footer { background:var(--ui-ink); }
.footer .footer-tagline,.footer .footer-section p,.footer .footer-section a { font-size:16px; line-height:1.7; }
.footer .footer-section h4 { font-size:20px; }
.footer .footer-stats .stat-label { font-size:14px; letter-spacing:.02em; }
.footer .footer-brand-text h3 { font-size:24px; }
.footer .footer-stats .stat-item { max-width:180px; }
.footer .footer-section p { color:#e0e3e7; }
.footer .copyright,.footer .legal-links a { font-size:14px; }
.c3-region-overview { --c3-navy:#20242a; --c3-navy-2:#252a31; --c3-panel:#292f36; --c3-panel-2:#303740; --c3-muted:#c4cbd3; }
.c3-head h2 { font-size:var(--ui-h2); }
.c3-card-title { font-size:18px; }
.c3-card-type,.c3-card-status,.c3-card-date,.c3-card-arrow,.c3-card-desc { font-size:14px; }
.c3-card-status { line-height:1.5; }
.c3-card-arrow { overflow-wrap:normal; }
.c3-stat-label { font-size:14px; }
.service-item h3,.service-card h3 { font-size:var(--ui-h3); }
.service-item p,.service-card p { font-size:16px; }
.cookies-inner { border-radius:3px; }
.cookies-inner h1 { font-size:var(--ui-h1); }
.cookies-inner h2 { font-size:var(--ui-h2); }
.cookies-inner h3 { font-size:var(--ui-h3); }
.cookies-inner p,.cookies-inner li { font-size:16px; line-height:1.75; }
.cookies-kicker { font-size:14px; }
@media(min-width:1101px) and (max-width:1450px) {
 .brand-header-inner { padding-inline:16px; gap:12px; }
 .brand-identity strong { font-size:16px; }
 .brand-identity img { width:38px; height:38px; }
 .brand-nav { gap:12px; }
 .brand-phone { border-left:0; padding-left:0; }
 .brand-phone a { font-size:14px; }
 .brand-phone span { font-size:12px; }
}
@media(min-width:1025px) and (max-width:1250px) {
 .brand-nav { gap:10px; } .brand-nav a { font-size:14px; }
 .brand-identity strong { font-size:15px; }
 .brand-header-inner { gap:10px; padding-inline:12px; }
}
@media(max-width:640px) {
 .brand-header-inner { padding-inline:12px; gap:8px; }
 .brand-identity { gap:6px; } .brand-identity img { width:34px; height:34px; }
 .brand-identity strong { font-size:14px; }
 .brand-phone { border:0; padding:0; } .brand-phone a { font-size:14px; }
 .brand-phone span { font-size:12px; }
 .campaign-intro h1 { font-size:30px; } .campaign-intro p { font-size:16px; }
 .mobile-tabbar .tabbar-item,.mobile-tabbar button.tabbar-item { font-size:14px; min-height:48px; }
 .c3-card { grid-template-columns:52px minmax(0,1fr); }
 .c3-card-arrow { grid-column:2; justify-self:start; font-size:14px; }
 .footer .footer-stats { flex-wrap:wrap; }
 .project-launcher { width:52px; }
}

.brno-city-map-caption > span { font-size:14px; }
.brno-city-map-caption small { font-size:12px; }
/* Expanded consent remains legible and reachable on small screens. */
.cookie-consent .cc-group { min-width:0; border-radius:3px; }
.cookie-consent .cc-group h4 { overflow-wrap:anywhere; }
.cookie-consent .cc-toggle { min-height:44px; }
@media(max-width:768px) {
 .cookie-consent { max-height:calc(100dvh - 16px); overflow-y:auto; overscroll-behavior:contain; }
 .cookie-consent .cc-groups { grid-template-columns:minmax(0,1fr); }
 .cookie-consent .cc-group { padding:12px 14px; }
 .cookie-consent .cc-group h4 { font-size:16px; }
 .cookie-consent .cc-expand-actions { flex-wrap:wrap; }
}
